Efficient handover of media communications in heterogeneous IP networks

ABSTRACT

An example method may involve using a first IP:port number to receive from a second IP:port number a first media control channel stream including quality information indicative of a quality of transmission of a first media stream being sent through a network; sending from the first IP:port number to the second IP:port number a second media control channel stream including quality information indicative of a quality of transmission of a second media stream; based on a network handover request, sending from a third IP:port number to the second IP:port number a third media control channel stream including quality information indicative of a quality of transmission of a third media stream being received through an alternate network; and using the third IP:port number to receive from the second IP:port number a fourth media control channel stream including quality information indicative of a quality of transmission of a fourth media stream.

CROSS REFERENCE TO RELATED APPLICATION

The present application is a continuation of U.S. patent applicationSer. No. 13/423,225, filed on Mar. 18, 2012, and entitled “EfficientHandover of Media Communications in Heterogeneous IP Networks,” which isa continuation of U.S. patent application Ser. No. 12/120,940 (now U.S.Pat. No. 8,165,090), filed on May 15, 2008, and entitled “EfficientHandover of Media Communications in Heterogeneous IP Networks,” all ofwhich are herein incorporated by reference as if fully set forth in thisdescription.

BACKGROUND

1. Technical Field

The present methods and systems relate to media communications such asvoice or video over packet-switched networks and, more particularly, toefficient methods and systems for handover of active media sessions whenmobile devices move between heterogeneous Internet Protocol (IP)networks.

2. Description of Related Art

The use of public packet-switched networks for voice and videocommunications is expected to continue to rapidly grow. “Internettelephony” is one example of packet-switched telephony. Inpacket-switched telephony, a packet-switched network such as theInternet serves as a transportation medium for packets carrying data forvoice, video, or other media such as music. Voice-over-Internet-Protocol(VoIP) is one example of a collection of standards and protocols used tosupport voice or video communications over packet-switched networks suchas the Internet. Others have been developed as well, includingproprietary protocols such as Skype®. A common Internet-telephony schemeinvolves a computer or other device that is capable of connecting to theInternet, transmitting voice or video to a second device such as agateway, another mobile device, or another computer.

A long-term, planned evolution of existing mobile networks worldwide isto migrate the underlying mobile network protocols and systems from atraditional circuit-switched architecture for voice services to apacket-switched architecture that is based on IP standards. Prominentexamples include the 3GPP (3rd Generation Partnership Project)consortium's announced “Long-Term Evolution” (LTE) standards as well asthe Institute of Electrical and Electronic Engineers' (IEEE) mobileWiMax standards (802.16 or 802.20) and subsequent versions. Althoughthese standards continue to evolve, a common expected feature is thatthe underlying networks will remain packet switched and based on IPstandards such as IPv4 and IPv6. With these next-generation networks,voice, video, or other media is transmitted over the IP network providedby the mobile operator or wireless Internet Service Provider (ISP).Media sessions such as voice calls can be managed by protocols such asthe Session Initiation Protocol (SIP), and these protocols generallyoperate at the application layer of the Open Systems Interconnection(OSI) stack. The IP Multimedia Subsystem (IMS) as specified by 3GPP isanother example of next-generation mobile-network technology thatimplements voice calls via application-layer software to manage mediasessions.

Numerous benefits may be realized through the use of packet-switchedtelephony based on IP standards for mobile networks. First, mobileoperators would like to provide access data services such asweb-browsing, e-mail, or video through the mobile device, and theseservices are frequently provided through standard Internet protocolssuch as Hypertext Transfer Protocol (HTTP) for web browsing, Simple MailTransfer Protocol (SMTP) for e-mail, or Real-Time Streaming Protocol(RTSP) for video. Thus, mobile network operators may efficiently supportmany data services through the deployment of an IP network and byassigning IP addresses to mobile devices. With an efficient IP network,the traditional circuit-switched network becomes redundant, and themobile operator can lower costs and simplify operations by managing asingle IP network instead of both an IP network and a circuit-switchednetwork.

Further, voice services worldwide are migrating to IP networks, and theInternational Telecommunications Union (ITU) projected that nearly 50%of all international phone calls were carried by VoIP in 2007. As thecorresponding endpoints for telephone calls or media sessions areincreasingly located on IP networks, the most efficient method forconnecting calls should be to keep the call control and media on theInternet when possible, as opposed to (i) transferring calls to acircuit-switched network such as the traditional Public SwitchedTelephone Network (PSTN) and then (ii) transferring the call back to theInternet in order to reach another endpoint that is also connected tothe Internet. Also, keeping the VoIP telephone calls from mobile devicesnatively on the Internet can reduce costs, since traditional per-minutecharges for connecting phone calls with the legacy PSTN can be bypassed.

Although the implementation of an underlying IP network for all mobileservices provides the significant benefits noted above, severalimportant new challenges are created. An important class of problemsrelates to handover of active media sessions such as voice calls whenthe mobile device moves through the mobile network or between differentnetworks. A significant focus of the various wireless Wide Area Network(WAN) standards such as 802.11e and 802.20 pertains to keeping an IPaddress bound to the mobile device or Media Access Control (MAC)address, even if the mobile device changes base stations due to movementsuch as driving in a car.

Traditional VoIP protocols such as SIP, Extensible Messaging andPresence Protocol (XMPP), H.323, Media Gateway Control Protocol (MCGP),or Inter-Asterisk Exchange (IAX2), as well as current implementations ofproprietary protocols such as Skype®, were originally designed whenalmost all devices with IP addresses could reasonably be expected tokeep the same IP address for the duration of a media session. Further,active sessions in many applications that implement transmission controlprotocol (TCP) were also not designed for the IP address to changeduring the session, such as Secure Shell (SSH) or File Transfer Protocol(FTP). Consequently, mobile operators and users may prefer for the IPaddress of the mobile device to not change during active sessions, andnext generation mobile networks using protocols such as WiMax and LTEare generally designed to minimize the change of IP addresses assignedto a given device.

For voice services, changing the IP address during an active call canresult in noticeable gaps or delay in the audio for both sides,especially when the IP address is changed as the subscriber movesbetween completely different networks, such as from a macro-cellularWiMax network to a WiFi (802.11) network in a building. Such a change inIP addresses for the mobile device could be a likely scenario when thesubscriber walks into an office building from the street, for example,where a superior connection to the Internet is provided through a localWiFi connection instead of a wide area WiMax connection.

What is needed in the art are techniques for seamless handover of theactive telephone call when the preferred IP address of the mobile devicechanges, such that potential gaps or distortion of audio are minimized,in order to efficiently maintain “peer-to-peer” communication with acorresponding node. What is also needed in the art is the avoidance of adisconnected call upon an IP address change, which would require theuser to place a second call to continue the conversation. When theInternet connectivity for the example WiFi network is provided by an ISPthat is a different entity from the mobile operator, the two subnets ofthe public Internet are commonly referred to as “heterogeneous”networks, in that they may be separately-managed subnets of the publicInternet.

Under the above scenario of handing over an active media session such asa voice call when a mobile device acquires a new preferred IP addressfor communication, a need in the art exists to solve the significantclass of problems introduced by various types of proxy servers,firewalls, and application-layer gateways that may operate on theInternet between a mobile device and a corresponding node. The handoverof an active call between heterogeneous networks is also referred to as“vertical handover”. For example, an Application Layer Gateway (ALG),managed by the mobile operator, located between the mobile network andthe public Internet may both (i) compress IP headers and also (ii)perform firewall functions, but an ALG may not be present when themobile device connects to the Internet via WiFi.

Although applications such as VoIP or web browsing operating on a mobiledevice may prefer to keep the same IP address active during a sessionunder normal circumstances, there are many instances when routing thepackets through a new or different IP address on the mobile device (MD)may be preferred in order to provide the superior service to thesubscriber. A mobile device that provides services through Internetprotocols will generally prefer a link-layer connection that provideshigher signal-to-noise ratios, lower power requirements, lower costs forthe IP connectivity, and/or other benefits. When the mobile device is inthe proximity of an 802.11 access point, connecting to the Internetthrough the 802.11 access point instead of the macro-cellular networkmay be preferred.

In addition, WiFi technology is currently widely deployed, and thenumber of access points globally is expected to continue to increase.For example, the market research firm In-Stat estimated 213 millionWi-Fi chipsets shipped out worldwide in 2006, representing a 32% growthrate over 2005. When (i) a subscriber places a telephone call on amobile device that connects to the Internet through WiFi, such as at thesubscriber's home or office, and then (ii) the subscriber moves out ofWiFi range by leaving the premises, and the macro-cellular networkbegins providing IP connectivity, the underlying IP address of themobile device will likely change. There could also likely be a period oftime when both the IP address from the WiFi network and the IP addressfrom the wireless wide area network (WAN) are available and active.

Similarly, superior connectivity to the mobile device may be deliveredby changing from the macro-cellular network to WiFi. For example, if amacro-cellular WiMax network is provided through the 2.50-2.69 GHzfrequency bands identified in the ITU WRC-2000 recommendations, themacro-cellular network signal may be degraded by building walls, and animproved connection for the device could be obtained by switching the IPconnectivity for the mobile device from the macro-cellular network toWiFi when a subscriber walks inside a building with WiFi access. In someinstances, the quality of the macro-cellular connection could degrade tothe point where it is unusable while WiFi connectivity is strong, suchas if the subscriber moves into the basement of a building in closeproximity to a WiFi base station. In this example scenario, there existsa need in the art to change the IP address that the mobile deviceutilizes for communicating with a corresponding node as rapidly aspossible through minimizing requirements for call-control signaling, asthe preferred routing of both inbound and outbound packets is changedfrom the macro network to WiFi.

There may be a period of time when both IP addresses are active andavailable to applications simultaneously on the mobile device, and aneed exists in the art to support “make before break” handover. Thereexists a need in the art to support handover between WiFi andmacro-cellular networks that implement VoIP for telephone calls in orderto provide significant benefits to the mobile operator and subscriberthrough increased network coverage. There is also a need in the art forefficient handover techniques that will reduce the potential for droppedmedia packets or increased jitter in a manner that requires minimaladditional servers or processes for the mobile network or communicationsservice provider to manage. A need exists in the art to perform thehandover in a rapid manner.

The IP address of the mobile device may also change when the subscribermoves between separate mobile operator networks that both provide IPconnectivity, analogous to roaming in traditional 2G and 3G mobilenetworks. A need exists in the art to properly execute the handover whenthe preferred IP address changes, thus allowing an “all IP” networkinfrastructure to keep active telephone calls from being disconnected,even though the subscriber moves between completely-separate networks.In legacy mobile networks such as those with GSM 2G technology, asubscriber's telephone call will generally not remain active if, forexample, a T-Mobile® subscriber moves from a location serviced byT-Mobile® to a location serviced by AT&T® (and not by T-Mobile®), eventhough AT&T® and T-Mobile® may have roaming agreements that allow idlehandovers.

The handover of active calls between heterogeneous GSM 2G networks maynot be commonly supported because the roaming agreements and theimplementation of GSM protocols may not support roaming where calls stayactive even though the subscriber moves to a completely-separatenetwork. In contrast, the WiMax specification generally assumes voiceand other media services are managed at the application layer of thetraditional OSI stack. For example, two separate networks such asClearwire® or NextWave® may provide mobile services through WiMax. If asubscriber belonging to the Clearwire® network moves from a locationserviced by Clearwire® to a location serviced by NextWave® (but notClearwire®), the IP address of the mobile device will likely change.There exists a need in the art for seamless handover of an activetelephone call or other media sessions, even though the subscriber hasmoved between the two heterogeneous IP-based mobile networks, also knownas making a vertical handover.

A need exists in the art for the vertical handover to be managed at theapplication layer of the OSI stack. Next-generation mobile networksgenerally assume voice services are transmitted through VoIP and managedat the application layer. This network architecture provides significantopportunities for companies managed independently of the mobile networkoperators, such as Skype®, Google®, Yahoo®, or Truphone® to providevoice, video, or other media services. These and similar companies mayoffer end users a communications service. The communications servicecould be delivered through software programs operating on a mobiledevice and may have access to the Internet via the mobile operator'sdata network.

However, the software programs may not have control over low-levelfunctions such as managing the MAC address or associating the mobiledevice with a particular base station. What is needed in the art areefficient methods and systems to support active call handover forcommunications services, as the mobile device moves betweenheterogeneous IP networks. There exists a need in the art for softwareprograms to (i) detect new IP addresses becoming available on the mobiledevice and (ii) monitor the quality of the links to decide that ahandover is desirable, and (iii) execute the handover as efficiently aspossible. Thus, there exists a need in the art for seamless handover tobe managed via software operating as an application on the mobiledevice.

In addition, a need exists in the art for the proper management of thejitter buffer in anticipation of call handover, such as a sudden changein jitter upon handover. A need exists in the art for handover toadequately support media control protocols that may operate on aseparate port than media, such as the Real-Time Control Protocol (RTCP)or Secure Real-Time Control Protocol (SRTCP). Media control protocolscan be helpful for monitoring quality and reporting back to theoriginating device of a media stream about the attributes of mediareceived at a corresponding node. A need exists to provide feedback to anode through media control channels, allowing the node to introduceadditional channel coding in the media, for example, if excessive biterrors are observed on the receiving side.

A further need exists, in the case where packet loss is observed on theterminating side, to provide feedback to the originating device in orderto implement forward error correction (FEC) codes such as packetduplication, or switch to a different, more frame-independent codec suchas switching from G.729b to the Internet Low-Bandwidth Codec (iLBC). Aneed exists in the art to efficiently handover media control messagesfrom a receiving device to a transmitting device in order to quicklyevaluate quality of media during handover and determine if the handoveris successful or complete. And other needs exist in the art as well, asthe list recited above is not meant to be exhaustive but ratherillustrative.

SUMMARY

Methods and systems are provided for handover of active media sessionssuch as telephone calls as a mobile device moves between heterogeneousIP networks. An objective of the invention is to address the challengesnoted above for vertical handover of a media session with a mobiledevice, while also providing desirable results, such as reducingcomplexity and increasing speed and/or efficiency.

A media session between a mobile device at a first IP address and acorresponding node can consist of a first media stream transmitted bythe mobile device and a second media stream transmitted by thecorresponding node. The mobile device or the corresponding node maytransmit or receive packets through a NAT router in a first mediasession. The NAT may also translate ports in addition to addresses. Themedia session may optionally include a media control channel to providefeedback from the receiving node to the transmitting node regarding thequality of media received. The media control channel could beimplemented through standard methods such as RTCP, SRTCP, or proprietarytechniques. The media control channel could also consist of non-mediapackets or non-media information inserted within a media stream.

The mobile device can acquire a new IP address, representing aconnection through a second network, while the media session is active.The new IP address may belong to a network that is managed by adifferent operating entity than the network providing Internet accessfrom the subnet via which the first media stream is transmitted by themobile device and the second media stream is received by the mobiledevice. IPv4, IPv6, or future revisions of these packet-switchedaddressing schemes could be the type of addresses assigned to either orboth of the mobile device and the corresponding node. The routing ofpackets from the new IP address may also be through a NAT router. Themobile device or a software routine operating on the mobile device candetermine that handover of the media session to the new IP address ispreferred, based on the relative performance of the network providingthe first IP address and the network providing the second IP address.

In one exemplary embodiment, (i) a first media stream is sent from amobile device assigned a first IP address to a corresponding node and(ii) a second media stream is sent from the corresponding node to themobile device at the first IP address. The mobile device can acquire asecond, new IP address with connection to the public Internet providedthrough a NAT router, and the corresponding node has either (i) an IPaddress that is publicly routable or (ii) an IP address with aconnection to the public Internet provided through a full cone NATrouter. When the mobile device acquires the second IP address, themobile device may begin sending a third media stream to thecorresponding node, wherein the first and third media streams may alsobe transmitted concurrently. The first and third media stream canrepresent separate communication channels for media transmitted from themobile device to the corresponding node. The destination IP address andport for the third media stream can be the same destination IP addressand port associated with the first media stream. The mobile device mayindicate to the corresponding node that a handover is taking place by(i) transmitting a call-control message to indicate the handover to thecorresponding node or (ii) transmitting a message inserted into thefirst or third media streams directly; alternatively, the presence ofthe third media stream may serve as a signal to the corresponding nodethat a handover is taking place.

The corresponding node can observe the source IP address and port forthe third media stream, which would likely be different than the sourceIP address and port implemented by the mobile device at the second IPaddress, if the mobile device transmits packets through a NAT router.The corresponding node can transmit a fourth media stream to the mobiledevice, and the destination IP address and port for packets in thefourth media stream can be the source IP address and port observed bythe corresponding node in the third media stream. In this manner, thefourth media stream can properly traverse the NAT router serving themobile device at the second IP address without previously requiring themobile device to (i) transmit probes through the NAT router, (ii)discover external port bindings and IP address, and (iii) communicatethose ports and IP address to the corresponding node via a call-controlmessage. Each of these steps would consume valuable time during ahandover process.

In addition, the source IP address and port implemented in the fourthmedia stream transmitted by the corresponding node can be the IP addressand port used by the corresponding node to receive both the first andthird media streams. The use of the same IP address and port as thesource address/port for transmission of the fourth media stream,representing the IP address and port where the corresponding nodereceives the first and third media streams, may more readily addressNATs in front of both the mobile device and the corresponding node. Thecorresponding node may transmit the second and fourth media streamconcurrently.

During handover, the mobile device can monitor both the first IP addressfor receipt of the second media stream and the second IP address forreceipt of the fourth media stream. A second media control channel canbe subsequently and optionally implemented for the third and fourthmedia streams to provide feedback information to each transmitting nodeabout the quality of information received. After a period of time whenboth the third and fourth media streams are successfully implemented,either the mobile device or corresponding node may signal the handoveris complete and the first and second media streams can be terminated.The media session, now consisting of the third and fourth media streams,can continue, and the mobile device can subsequently monitor networkconnections to determine if another handover is preferred.

In exemplary preferred embodiments, the media session and handover canbe managed through a software program operating on the mobile device. Auser may access a communications service that supports media on a mobiledevice, such as voice calls to telephone numbers, generally free“peer-to-peer” calling to other devices with Internet access, or videoservices. A software program operating at the corresponding node couldbe compatible with the software program on the mobile device. Forexample, both the mobile device and corresponding node can operatecompatible software such as Skype®, GoogleTalk®, compatible SIP clients,or similar software. The software operating at the mobile device and thecorresponding node may communicate call control through one or severalproxy servers in order to establish the first media session. A softwareroutine may monitor the quality of network connections for the mobiledevice and predict that a different network connection will be superiorfor communication in the future. The software operating on the mobiledevice may include a handover-predictive jitter buffer, such that whenthe software routine determines a future handover is preferred, a jitterbuffer in the mobile device implemented for the receipt of media can beincreased before handover and subsequently decreased after handover.

These as well as other aspects and advantages will become apparent tothose of ordinary skill in the art by reading the following detaileddescription, with reference where appropriate to the accompanyingdrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Various exemplary embodiments are described herein with reference to thefollowing drawings, wherein like numerals denote like entities.

FIG. 1 is a graphical illustration of an exemplary system, where mediais transmitted and received by a mobile device and a corresponding nodebefore handover according to one exemplary embodiment of the invention.

FIG. 2 a is a graphical illustration of software and hardware componentsfor a mobile device and a corresponding node.

FIG. 2 b is a graphical illustration of an exemplary call-controlchannel between a mobile device and a corresponding node.

FIG. 2 c is a graphical illustration of an exemplary system where a nodecan determine the presence and type of NAT.

FIG. 3 is a graphical illustration of an exemplary system where themobile device acquires a second IP address associated with a NAT routerand the mobile device begins transmitting media from the second IPaddress during handover.

FIG. 4 is a graphical illustration of an exemplary system where themobile device and corresponding node transmit and receive media duringhandover according to an exemplary embodiment.

FIG. 5 is a graphical illustration of an exemplary system where themobile device and corresponding node transmit and receive media and amedia control channel upon completion of a handover according to anexemplary embodiment.

FIG. 6 is a simplified flow chart for exemplary handover proceduresaccording to an exemplary embodiment.

FIG. 7 is a simplified message flow diagram illustrating the handovercall-control messages and media flow between the mobile device andcorresponding node according to an exemplary embodiment.

FIG. 8 a is a simplified tabular summary illustrating packet-receipttimings and jitter-buffer settings during handover for a mobile deviceaccording to an exemplary preferred embodiment.

FIG. 8 b is a flow chart illustrating exemplary steps for a softwareroutine to monitor the trend in the quality of network connections andto determine that a handover is preferred.

FIG. 9 is a graphical illustration of an exemplary system where themobile device initiates handover, where the corresponding node accessesthe public Internet through a full cone NAT router, according to anexemplary embodiment.

FIG. 10 is a graphical illustration of an exemplary system where themobile device and corresponding node transmit and receive media uponcompletion of handover and the corresponding node connects to theInternet through a full cone NAT router, according to an exemplaryembodiment.

FIG. 11 is simplified tabular summary illustrating the source anddestination IP addresses for media and media control packets transmittedand received during handover process according to an exemplaryembodiment.

FIG. 12 is a graphical illustration of an exemplary system where themobile device performs handover between two heterogeneous mobilenetworks according to an exemplary embodiment.

FIG. 13 is a flow chart illustrating exemplary steps for a mobile deviceto perform handover between heterogeneous IP networks.

FIG. 14 is a graphical illustration of an exemplary system where thecorresponding node performs as a relay to a terminating node, accordingto an exemplary embodiment.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS OF THE INVENTION

1. FIG. 1

FIG. 1 is a graphical illustration of an exemplary system, where mediais transmitted and received by a mobile device and a corresponding nodebefore handover according to one exemplary embodiment of the invention.The system 100 includes a mobile device (MD) 101 operating within amobile network (MN) 102. MD 101 preferably is associated with an IPaddress 103 and can communicate through radio-frequency spectrum and mayimplement Internet protocols. Although an IPv4 address is shown for MD101, the MN 102 could implement IPv6, combinations of IPv4 and IPv6, ora similar packet-switched addressing scheme.

Many methods are available for associating an IP address 103 with MD101. For example, a particular MAC address assigned to hardware withinMD 101 can be temporarily assigned an IP address through methods such asDynamic Host Configuration Protocol (DHCP) for a wireless local areanetwork (WLAN). Alternatively, MD 101 can be associated with an IPaddress via a Packet Data Protocol (PDP) Context Activation for GeneralPacket Radio Service (GPRS) networks and subsequent standards. Otherstandards-based methods for a MD 101 to acquire an IP address areavailable as well. Alternatively, the IP address 103 could be entered bythe end user or permanently assigned to the device, similar to theInternational Mobile Equipment Identity (IMEI) number assigned todevices according to 3GPP standards. The specific IP address numbersshown in FIG. 1 and subsequent figures are for illustration purposes,and other IP addresses could be implemented on each appropriate element.

MD 101 may have a software program operating on the device to managevoice, video, or other streaming communications, and the softwareprogram may interface with a user for entering telephone numbers, names,e-mail addresses, or other user IDs with which a user may wish tocommunicate. The software program may be embedded within the device,such as included within the MD 101 operating system or chip set, or maybe a separate application downloaded and installed by the end user. MD101 may be a mobile phone handset, a laptop computer, a PDA, a trackingdevice associated with a physical object such as a vehicle, or similardevices that operate software programs and communicate withinradio-frequency spectrum. Actions performed by MD 101, such as (i)acquiring IP addresses, (ii) establishing media sessions, and (iii)similar functionality, may be implemented in software operating on MD101. In addition, MD 101 may have several software programs operating onthe device to manage media communications.

The mobile network 102 can provide service to the MD 101 as the usermoves within a wide geographical region, such as throughout a city orstate. The user may sign up for a communications service that providesservices over the Internet, such as paid calling to telephone numbers,free calling to other users on the same communications service,streaming music and video, or discounted calling to telephone numbersthrough the display of advertisements on the mobile device's screen,among many other examples. The communications service may be provided bya different company than the company operating the mobile network,analogous to using Skype®, Google Talk®, or MSN Messenger® through abroadband connection provided by an ISP. Alternatively, thecommunications service may be offered by the mobile network operator,similar to traditional mobile voice and data services when a user signsup with communications services such as Verizon®, T-Mobile®, or AT&TMobility®.

In addition, the communications service may be a service provided by amobile virtual network operator (MVNO), which may purchase services on awholesale basis from a mobile network operator and sell services undertheir own brand; an example of this type of communications service wouldbe with Helio®, which is currently associated with the AT&T® network. Inorder to access a communications service, a user could either agree to acontract or click on a form to accept a user agreement. Thecommunications service may also have branding information displayed tothe user, such as having a logo displayed on a handset screen or printedon the device. The communications service may include software thatoperates on the mobile device, or a software program that can bedownloaded to the mobile device.

Base Station 104 can connect MD 101 to MN 102 via radio communications.Although a single base station is shown, MD 101 may communicate withmultiple base stations. MN 102 may implement a NAT router associatedwith the mobile network, such as MN NAT 105, to connect to the publicInternet 106. The NAT router 105 may provide multiple functionsincluding (i) providing a private network internal to the mobileoperator, (ii) acting as a firewall between mobile devices and thepublic Internet for enhanced security within the MN 102, (iii)converting packets between IPv4 and IPv6, and/or (iv) operating as anapplication-layer gateway (ALG). The application-layer-gatewayfunctionality may be useful for managing communication between mobiledevices within MN 102 and external hosts, such as managing ports or callcontrol in SIP-based VoIP calls from mobile devices to externalSIP-compatible hosts or devices with connectivity through the publicInternet 106.

If IPv6 is implemented within MN 102, MN NAT 105 may be required inorder to translate to IPv4 packets for communication with IPv4 hosts orother IPv4 clients with connectivity through the public Internet 106.The NAT router 105 may optionally be omitted, or may be locatedelsewhere on the Internet. If NAT router 105 is omitted, thenpublicly-routable IP addresses could be assigned to a mobile device 101within mobile network 102. NAT router 105, if implemented, generallyperforms both address translation and port translation, which may alsobe referred to as “NATP”.

The MN 102 may also optionally implement IP header compression 107 inorder to conserve radio-frequency bandwidth. Header compression 107could compress the IP, UDP, and RTP headers in media packets. IP address103 is shown without header compression. MN 102 is a simplifiedrepresentation, and MN 102 may contain multiple servers and elementssuch as base station controllers, routers, NAT routers, authenticationservers, and gateways, among other elements. In addition, a plurality ofmobile devices may access the Internet via MN 102.

A corresponding node 108 (CN) has connectivity to the public Internet106. CN 108 may be another mobile device, an IP phone, an analogtelephone adapter, a gateway to the Public Switched Telephone Network(PSTN) such as a Cisco AS-5400, a personal computer running a softwareprogram for voice or video communications, a server providing featuressuch as voice mail, a server transmitting streaming video such as atelevision broadcast, or any other device capable of implementingInternet protocols and communicating media with MD 101. CN 108 ispreferably an endpoint where media is encoded and decoded and that alsoimplements a codec, some example endpoints being (i) a mobile devicethat converts digital audio to an analog form for comprehension by asecond user, (ii) a camera connected to the Internet that transmitsvideo, and (iii) a server where voice or video is stored for laterplayback.

CN 108 may also be a computing device running a software programimplementing the same protocols as MD 101 to provide “peer-to-peer”communications such as Skype®, Google Talk®, Yahoo Instant Messenger®,MSN Instant Messenger®, AOL Instant Messenger®, or similar programs. CN108 and MD 101 may implement different protocols, if a server (notshown) between them performs proper translation. In addition, CN 108could be a relay, proxy server, or session border controller forcommunication with MD 101, such as providing a public IP address for MD101 to route packets to a terminating node (not shown). This terminatingnode could also be one of the many types of corresponding nodesdescribed above, if the CN 108 illustrated in system 100 is a relay.

As illustrated in system 100, MD 101 and CN 108 have established a mediasession, and the media session could be a telephone call, a video call,or streaming music from an Internet radio station, for example. Themedia session may be implemented through standards-based protocols suchas SIP, IAX2, MGCP, XMPP, or similar standards. The media session mayalso be implemented through protocols managed by third parties such asSkype®, Cisco's Skinny®, or other protocols capable of establishingmedia communication between endpoints having Internet connectivity.

The media session may consist of a first media stream 109 (MS 1)transmitted from MD 101 to CN 108 and a second media stream 110 (MS 2)received by MD 101 and transmitted from CN 108. A media stream mayconstitute a series of packets containing digitized media that aretransmitted from a sending node to a receiving node. A media stream maybe differentiated from another media stream by observing the sourceIP:port (i.e. IP address and port number) and destination IP:port withinpacket headers for packets contained in the media stream, as the packetstraverse the Public Internet 106. For example, in system 100 illustratedin FIG. 1, a packet contained in MS 1 109 on the public Internet 106 may(i) have the IP address 216.52.163.10 as the source IP address and 22334as the source port and (ii) have the IP address 68.25.213.4 as thedestination IP address and 33224 as the destination port.

MS 1 109 and MS 2 110 may consist of voice digitized or compressed witha codec such as AMR (adaptive multi-rate), GSM-EFR (Global System forMobile Communications Enhanced Full Rate), iLBC (Internet Low BandwidthCodec), VMR (Variable Multi Rate), G.711, or some other codec, and themedia may be encapsulated within packets formatted according to the UserDatagram Protocol (UDP), Transmission Control Protocol (TCP), or similaror subsequent standards. The media streams MS 1 109 and MS 2 110 couldalso consist of video digitized with a video codec such as MPEG, H.264,VC-1, or some other video codec, or a combination of voice and video,and also be transmitted within UDP or TCP datagrams.

MS 1 and MS 2 may be transmitted according to the Real-time TransportProtocol (RTP), Secure Real-time Transport Protocol (SRTP) or othermethods that properly sequence the media for playback at the receivingend. Although the transmission of media via UDP may be preferred, otherprotocols could be implemented as well, such as TCP. Note that TCP couldbe required for the media if a NAT router or firewall along the mediapath blocks UDP packets for example.

The media session consisting of MS 1 and MS 2 may optionally include afeedback mechanism to each node to indicate the quality of the mediastream at the receiving end, through implementing a media controlprotocol. Real-time Transport Control Protocol (RTCP) stream 2 (111)consists of packets periodically sent from MD 101 to CN 108 to provideinformation such as round-trip delay, packet loss, bit errors, or jitterfor media received in MS 2 110. An example message would be an RTCPreceiver report. Feedback on the quality of the media transmitted can beuseful for improved management of mobile-IP links, which naturally incurbit errors and packet loss as the mobile subscriber moves into areaswith lower-quality coverage from base stations.

Based on the feedback within RTCP stream 2 111, the CN 108 may makeadjustments such as implementing forward-error-correction (FEC)techniques or changing the codec for transmission of MS 2. Similaradjustments to media transmitted in MS 1 by MD 101 could be made throughRTCP stream 1 112. Some examples of feedback mechanisms other than RTCPinclude Secure Real-time Transport Control Protocol (SRTCP), RR JITTERor RR LOSS messages within the IAX2 protocol, and proprietary methods.

The media control protocol to provide feedback can also be implementedlogically within MS 1 and MS 2, such that feedback messages are insertedwithin the media stream, which is the case with IAX2 RR JITTER and RRLOSS messages. SRTCP is associated with SRTP, which allows encryption ofthe media for transmission through the public Internet 106, therebymaintaining confidentiality as the media passes through routers and hopson the public Internet 106 that are not under the control of either amobile subscriber, MN 102, or the user at the corresponding node 108.

The feedback mechanism may be implemented in ways other than an explicitmedia control channel such as that shown in RTCP stream 1 112 and RTCPstream 2 111, such as using “out of band” signaling through acall-control channel such as SIP NOTIFY messages, or methods that arenot based on current, widely deployed IETF RFC standards. The feedbackmechanism implemented via RTCP stream 1 112 and RTCP stream 2 111 is notrequired for useful communication between MD 101 and CN 108, but may behelpful for managing quality of the media and also managing handovers.

MD 101 preferably transmits and receives media through the use ofspecific ports. In the exemplary system illustrated in system 100,IP:port 113 is used by MD 101 for sending media and IP:port 114 is usedby MD 101 for receiving media. IP:ports 113 and 114 could use the sameport number and, although they are shown as IPv4 addresses, they couldalso be IPv6 addresses, or comply with similar packet-switchedaddressing schemes. If the MN NAT 105 functions as an application layergateway (ALG), with SIP calls for example, the MN NAT 105 may makeadjustments to the Session Description Protocol (SDP) messages withincall-setup requests, to properly inform the CN 108 of the public IPports on the MN NAT 105 for sending or receiving the media streams.

For the example media session illustrated in system 100, according tothe SIP protocol with RTP media, the ALG functionality of MN NAT 105maps packets (a) between IP:port 113 and IP:port 115 and (b) betweenIP:port 114 and IP:port 116. Insertion of IP:port 115 and 116 into thebody of the SDP messages transmitted by MN NAT 105 may be useful if theMD 101 belongs to a private IP network (i.e. has an IP address that isnot publicly routable), as shown by mobile-device IP address 103(10.0.1.123), which is among the IP addresses that are reserved forprivate networks according to IETF RFC 1918, which is herebyincorporated herein by reference.

If a software program on the MD 101 is operating a protocol that is notunderstood by an application layer gateway operating on MN NAT 105, suchas may be the case with a proprietary protocol or with encryptedpackets, as examples, the above-described port translation within thebody of session-description messages at MN NAT 105 may not be possibleby the application layer gateway functionality operating on MN NAT 105.In this case, IP:ports 113 and 114 may preferably use the same port andIP:ports 115 and 116 may also preferably use the same port. IP:port 122of CN 108 receives media transmitted by MD 101 in MS 1 109, and IP:port123 of CN 108 transmits media to MD 101 in MS 2 110. Note that IP:port122 and IP:port 123 are each an IP address and port that are associatedwith the corresponding node.

Note that, as used herein, one or more IP addresses orIP-address-and-port pairs (i.e. IP:ports) being “associated with” anentity (e.g. a mobile device or a corresponding node) does notnecessarily mean that these IP addresses and/or IP:ports are located at(i.e. assigned to) the entity itself. The “associated with” languagealso, however, contemplates an arrangement where the entity is behind aNAT router and/or an application layer gateway, which alone or incombination would function to associate these IP addresses and/orIP:ports with the entity. In addition, if the corresponding node is arelay or a node had a publicly routable IP address, the “associatedwith” language contemplates the IP address and IP:port also beingassigned to the device, for example.

Continuing the discussion of FIG. 1, from the perspective of MD 101, theIP address and port associated with the corresponding node (i.e. IP:port122) is the proper IP:port on the public Internet 106 for MD 101 totransmit packets in order to reach CN 108. If CN 108 has an IP addressthat is routable on the public Internet, as illustrated in system 100,then the IP address associated with CN 108 can also be consideredassigned to CN 108. Conversely, as explained in the preceding paragraph,a public IP address that is associated with a given node—such as CN108—may not necessarily be assigned to the given node, if, for example,the given node accesses the Internet through a NAT router.

The user operating, owning, or having access to MD 101 may also have analternate network (AN) 117 that also provides connectivity to the publicInternet 106. AN 117 may be or include a separate wireless network, suchas a WiFi access point 118 that provides an air interface according toIEEE 802.11 or similar standards. The WiFi access point 118 may obtainInternet connectivity through an alternate network NAT router (AN NAT)119 having a broadband connection from an Internet Service Provider(ISP) via fixed transmission media such as one or more of DigitalSubscriber Line (DSL), cable, fixed wireless, fiber optic cables, etc.The ISP may be an entirely separate entity from the operator of MN 102.

AN 117 may provide superior network connectivity to the MD 101 when theMD is within proximity of AN 117. The superior network connectivitywould likely take the form of various combinations of highersignal-to-noise ratios (SINRs) via stronger signals, lower powerrequirement, lower costs for bandwidth, less packet loss, lower delay,fewer bit errors, greater overall bandwidth, less jitter, enhancedsecurity, and/or other benefits.

Since AN 117 likely belongs to a different subnet of the public Internet106 than does MN 102, a different IP address may well be assigned to MD101 when MD 101 connects to AN 117. For example, the ISP serving AN 117could provide connectivity to the public Internet 106 using a class B orclass C IPv4 address range that is different from the IPv4 address rangebelonging to MN 102. Further, the routing of packets from CN 108 to MD101 will change when MD 101 is receiving those packets via AN 117, sincethe destination of packets on the public routable Internet 106 would bethrough the alternate-network public IP address 120 associated with AN117.

As stated above, AN 117 may have AN NAT 119 that converts packetsbetween being addressed using internal, private IP addresses within theAN 117 to using addresses routable on the public Internet 106. AN NAT119 can be the default gateway within AN 117, with an example defaultgateway IP address 121 shown as 192.168.0.1. The AN NAT 119 may beintegrated with the Wi-Fi router 118, and/or with a DSL modem or cablemodem, or may reside within the data centers operated by an ISP. Notethat multiple levels of NAT may exist between MD 101 and the publicInternet 106, as opposed to the single AN NAT 119 that is illustrated insystem 100. In some embodiments, AN NAT 119 may not be present, in whichcase IP addresses assigned within AN 117 may be publicly routable.

Although the wireless network within AN 117 is illustrated as being aWiFi network, the local IP connectivity could be provided using variouswireless technologies such as Bluetooth, infrared, Ultra Wideband, afemtocell, and/or similar local-area-networking technologies. Inaddition, the AN 117 IP connectivity could be directly provided by awired connection, such as when the mobile subscriber plugs an Ethernetcable or Universal Serial Bus (USB) cable directly into MD 101, if MD101 is a laptop computer, for example.

And although the alternate network 117 is illustrated as being roughlycoextensive with a residence, AN 117 may be instead be situated asroughly coextensive with an office building, a commercial establishmentsuch as a coffee shop that provides WiFi access, a municipal WiFihotspot, an access point provided by a third-party “mesh network”, auniversity campus, and/or other physical locations where IP connectivityseparate from MN 102 is available to MD 101. In addition, AN 117 couldbe a separate wireless network provided by a different mobile networkoperator, among many other possibilities. AN 117 and MN 102 wouldcommonly be and herein are referred to as “heterogeneous” networks andthe transfer of a media session involving MD 101 between AN 117 and MN102 would commonly be and herein is referred to as a “verticalhandover”.

2a. FIG. 2 a

FIG. 2 a is a graphical illustration of software and hardware componentsfor a mobile device and a corresponding node, in accordance with anexemplary embodiment. MD 101 and CN 108 may consist of multiplecomponents in order to provide services such a voice or video calls to auser. The physical interface 201 of MD 101 may provide radio-frequencycommunications with networks including the MN 102 via standards such asGPRS, UMTS, mobile WiMax, CDMA EVDO, and/or other mobile-networktechnologies. The physical interface 201 may also provide connectivityto local networks via technologies such as 802.11, Bluetooth, orpossibly wired connections such as Ethernet, when those networks areavailable to MD 101, among other possibilities.

The physical interface 201 can include associated hardware to providethe connections such as radio-frequency (RF) chipsets, a poweramplifier, an antenna, cable connectors, etc. If CN 108 is also a mobiledevice, such as another mobile handset on MN 102 or a another wirelessnetwork providing Internet connectivity, the physical interface 206 canbe similar to the physical interface 201 and support radio-frequencycommunication with a transceiver station associated with a base stationsimilar to base station 104 connecting to a mobile network. If CN 108 isa personal computer, server, or gateway, or other generally stationarydevice, the physical interface 206 may be a wired interface connectingto Ethernet and similar LAN technologies. And other possibilities existas well, without departing from the invention. The physical interfaces201 and 206 could also include microphones and speakers for audio, or acamera for video.

Device drivers 202 and 207 can communicate with the physical interface201 and 206, respectively, providing access to higher-level functions onMD 101 and CN 108. Device drivers may also be embedded into hardware orcombined with the physical interfaces. MD 101 and CN 108 may preferablyinclude an operating system 203 and 208, respectively, to manage devicedrivers 202 and 207, respectively. The operating systems can also manageother resources such as memory and may support multiple softwareprograms operating on MD 101 and CN 108 at the same time. The operatingsystems 203 and 208 can include Internet protocol stacks such as a UDPstack, TCP stack, RTP stack, and the operating systems 203 and 208 mayinclude voice and video codecs. Voice or video codecs could instead beintegrated with the device driver 202 or 207, embedded into hardware, orincluded in software programs. An example operating system 203 for MD101 includes Linux, Windows® Mobile, or Symbian®.

The software program 204 or 209 may be an application programmed in alanguage such as C or C++, and could provide functionality such as aVoIP client, a video client, instant messaging, e-mail, and/orweb-browsing capabilities. Many of the logical steps for operation of MD101 and CN 108 can be performed in software by various combinations ofdevice driver 202 and 207, operating system 203 and 208, and softwareprogram 204 and 209, respectively.

The software program 204 or 209 may also contain a handover-predictingjitter buffer 222, which may increase the jitter-buffer size beforehandover and decrease the jitter-buffer size after handover. Thehandover-predicting jitter buffer could alternatively be included inoperating systems 203 or 208, or device drivers 202 or 207, among otherpossibilities.

When MD 101 is described as performing various actions such as acquiringa new IP address, monitoring a port, transmitting a packet or mediastream, or similar tasks, specifying that MD 101 performs an action canrefer to (i) software, hardware, and/or firmware operating within MD 101performing the action, or also (ii) software, hardware, and/or firmwareoperating with MD 101 in conjunction with software, hardware, and/orfirmware operating on external servers performing the action. Note thatMD 101 and CN 108 may also include user interfaces 205 and 210,respectively, each of which may include one or more devices forreceiving inputs and/or one or more devices for conveying outputs. Userinterfaces are known in the art, and thus are not described in detailhere.

For many example media sessions between MD 101 and CN 108, the physicalinterfaces, device drivers, operating systems, and user interfaces maybe different, such as if MD 101 is a mobile handset and CN 108 is agateway to the PSTN. However, the software programs 204 and 209,operating on MD 101 and CN 108, respectively, could be of the same type,such as a Skype® client on MD 101 and another Skype® client on CN 108.Other example compatible software programs operating on both MD 101 andCN 108 could include SIP clients, IAX2 clients, or other “peer-to-peer”clients such as GoogleTalk®.

The device drivers 202 or 207, operating systems 203 or 208, andsoftware programs 204 or 209 could optionally be combined into anintegrated system for managing MD 101's or CN 108's functionality,respectively. In addition, the operating systems 203 or 208, andsoftware programs 204 or 209, may be combined respectively within thesame device. Although a single physical interface, device driver set,operating system, software program, and user interface are illustratedin FIG. 2 a for each device, MD 101 and CN 108 each may contain multiplephysical interfaces, device drivers, operating systems, softwareprograms, and user interfaces. And other arrangements could be used aswell, without departing from the invention.

2b. FIG. 2 b

FIG. 2 b is a graphical illustration of an exemplary call-controlchannel between a mobile device and a corresponding node. FIG. 2 b isillustrated according to common techniques implemented for call-controlchannels within the prior art. The call-control channel 2 b can be usedto establish a media session between two endpoints or nodes withInternet connectivity, even though the two endpoints may not have theability to initially directly communicate due to the presence of NATs orfirewalls, illustrated by NATs 211 and 212.

The endpoints MD 101 and CN 108 may each register with a proxy server213 or 214, respectively. The registration process generally opensexternal port bindings on NATs 211 and 212 for communication with MD 101and CN 108, respectively. The open external port bindings on NATs 211and 212 may be kept open by periodic messages sent by MD 101 and CN 108to their respective proxy servers, and the proxy servers may sendmessages such as call requests through an opened port on a NAT or seriesof NATs between the proxy server and a node. The proxy servers couldalso be referred to as supernodes according to the Skype® protocol,Asterisk servers according to the IAX2 protocol, SIP proxies accordingto the SIP protocol, or Gatekeepers according to the H.323 protocol, forexample.

A call request 215 can be generated by MD 101 when an end user keys in atelephone number and presses “dial”, or when an end user clicks on anicon or name within a buddy list, as examples. The call request may beformatted according to a protocol that is capable of establishing mediasessions through the Internet, such as SIP, XMPP, IAX2, H.323, MGCP,Skype®, or similar methods. Call request 215 is illustrated as formattedaccording to the SIP protocol. The call request may be encapsulated inpackets according to a transport protocol that may include TCP, UDP, TLS(Transport Layer Security), SSL (Secure Socket Layer), or similarmethods that are commonly supported on the Internet and also NATrouters.

Proxy server 213 can process the call request by locating theappropriate proxy server for CN 108 via methods such as the Domain NameSystem (DNS) or a distributed hash table (DHT), as examples. Althoughnot shown, there may be additional layers of proxy servers, such as agateway proxy, wherein the proxy server 213 passes call requests up to agateway proxy, and the gateway proxy then locates and passes the callrequest to a gateway proxy for the corresponding node's network. Inaddition, with a large network of hundreds of thousands of nodes ormore, a network can consist of a plurality of distributed proxy servers.Further, each proxy server can support a plurality of nodes.

When the call request 215 reaches the corresponding node proxy 214, thecorresponding node proxy 214 may locate and forward the call request tothe corresponding node 108. The call request 215 may typically includeinformation useful for setting up the media session 216, such as adesired codec and the appropriate public IP address and port for CN 108to transmit media to, perhaps representing an IP:port on a publicInternet interface of NAT router 211, if it is present. CN 108 mayrespond to the call request, with a message that includes theappropriate public IP:port for MD 101 to transmit media to, illustratedin FIG. 2 b according to the SIP protocol with “200 OK”. Othercall-control messages may also be passed between the nodes and proxyservers, such as TRYING and 180 PROCEEDING, as examples. Through theseand similar methods, MD 101 and CN 108 can establish media sessions andcommunicate call-control information.

Once the initial call request and response between MD 101 and CN 108 hasbeen processed, the endpoints may also then communicate further callcontrol directly between them, since a communication channel has beenestablished, although direct communication of call control between MD101 and CN 108 may require either implementation of a different protocolthan SIP, or future extensions to SIP as currently specified in IETF RFC3261, which is hereby incorporated herein by reference. After an initialcall request is processed by the endpoints, further call-controlmessages may be processed, such as SIP Re-Invite, SIP UPDATE, or similartransfer messages in other protocols, a SIP BYE or similar “hangup”messages in other protocols to terminate the media session. Othercall-control messages may add features such as establishing a conferencewith a third endpoint (not shown). And other examples are possible aswell.

Although a single protocol (i.e. SIP) is illustrated in FIG. 2 b, thetwo endpoints may not necessarily use the same call-control protocol.For example, MD 101 may implement the SIP protocol, whereas CN 108 mayimplement the XMPP protocol. Proxy server 213 or 214 may translate theprotocol in order to establish communication between the endpoints, orthe translation may occur on a third server within the call-controlflow. If the two endpoints implement different call-control protocols,preferably they can communicate according to the same codec or,alternatively, implement transcoding. FIG. 2 b also illustrates that arelay may be used to communicate media between two NATs, and in fact theuse of a relay may be required if the two NATs are symmetric. Further,the relay illustrated in FIG. 2 b may be used during a call handoverprocess. For example, the relay could function as an intermediatecorresponding node when MD 101 moves to AN 117, and the relay could thenforward packets to CN 108, representing a terminating node.

2c. FIG. 2 c

FIG. 2 c is a graphical illustration of an exemplary system where a nodecan determine the presence and type of NAT. FIG. 2 c is illustratedaccording to common techniques implemented within the prior art todetermine the presence and type of NAT. In system 200, a node with an IPaddress can probe servers on the public Internet 106 to determine thetype of NAT that may connect the node to the public Internet. The nodemay send a packet such as a query 217 to a first server 218, illustratedas STUN A (Simple Traversal of UDP through NAT, IETF RFC 3489, which ishereby incorporated herein by reference), which can then respond (at219) to the source IP address and port it observed as transmitting thequery.

The response 219 can contain the source port and IP address that theserver observed in the query 217 transmitted by the node. The firstserver 218 can also then forward the query to a second server 220,illustrated as STUN B. The second server then also forwards a response221 back to the source port and IP address for the original query 217transmitted by the node. The node listens on the port on which ittransmitted the query, in order to obtain a response from the servers.If two responses 219 and 221 are received, one each from the first andsecond servers 218 and 220, respectively, the node may determine the NATtype is a full cone. If only one response is received, from the firstserver for example, the node may determine the NAT type is either (i)symmetric or (ii) a port restricted cone, or (iii) a partial cone.

Further queries from the node also could further resolve the NAT type.Other, similar, techniques besides STUN can be used by a node todetermine the NAT type. Although a single NAT is shown between the nodeand the servers 218 and 220, multiple NATs may exist between the nodeand the servers. In this case, the multiple NATs can be evaluated as asingle logical NAT. Example descriptions of the common types of NATssuch as full cone NAT routers can also be found in IETF RFC 3489,section 5.

3. FIG. 3

FIG. 3 is a graphical illustration of a system where the mobile device101 acquires a second IP address IP 301 that is associated with a NATrouter, and the mobile device begins transmitting media from the secondIP address during handover. Since MD 101 can be a mobile device operatedby a user or subscriber that changes location, the subscriber may movewithin range of alternate network 117 that also provides Internet access(in addition to MN 102 providing Internet access), as illustrated bysystem 300 in FIG. 3.

In order to obtain connectivity to the Internet through the alternatenetwork 117, the mobile device 101 can acquire IP address 301 that isprovided by a local area network within alternate network 117. AlthoughIPv4 addresses are shown within AN 117, IPv6 or similar addressingschemes could be implemented. IP address 301 may be acquired by variousmethods such as DHCP, and MD 101 has sufficient computing power toassociate with multiple IP addresses simultaneously. A software program204 operating on MD 101 can observe that IP address 301 becomesavailable via periodic queries to an operating system 203 or a devicedriver 202.

IP address 301 can be considered assigned to MD 101 when a softwareprogram 204, operating system 203, or device driver 201 can transmit orreceive packets using IP address 301. Under many scenarios, IP 103 andIP 301 can be available simultaneously to a software program 204operating on MD 101, such as when MD 101 is within range of more thanone network. The software program 204 may be a component of acommunications service, such as a program downloaded and installed on MD101. MD 101 may measure the quality of the two network connections,which can include measurements at the physical, data-link, and networklevels. Quality can be measured according to several parameters,including power levels, signal-to-noise ratios, bit errors, packet loss,delay, and jitter. Quality may also be measured on both the uplink anddownlink, for transmitting and receiving data.

MD 101 can include a software routine to determine that handover of themedia session from IP 103 to IP 301 is preferred. A software routineoperating within MD 101 may determine that IP 301 is preferred forcommunication due to a combination of increased signal-to-noise ratios,reduced packet loss, reduced bit errors, reduced power consumption,reduced delay, reduced jitter, reduced costs for bandwidth, increasedstability of network quality, increased bandwidth available forcommunication, and/or one or more other network characteristicsaccording to which AN 117 would provide a superior connection to thatprovided by MN 102. The software routine to determine handover may beoperating in conjunction with software program 204, operating system203, or device driver 202, among other possibilities, and may alsofunction as a subroutine within a larger software program.

Either (i) MD 101 or (ii) a software routine that determines whenhandover is preferred may also predict that IP 301 may become preferredfor communication, based on monitoring and comparing the relativequality of communication through AN 117 and MN 102. For example, eventhough the network connection providing IP 301 may initially have arelatively weak signal compared to the network connection providing IP103, with corresponding higher bit errors, higher packet loss, orgreater delay on the network providing IP 301, MD 101 can monitor thenetwork providing IP 301 as MD 101 approaches the example AN 117illustrated as a WiFi access point 118 in system 300.

If the network connection or IP connectivity between MD 101 and WiFiaccess point 118 improves at a sufficient rate, MD 101 may predict thatIP 301 will become preferred over IP 103 and, consequently, MD 101 mayinitiate handover before communication via IP 301 is actually superiorto communication via IP 103. Conversely, MD 101 may observe thatcommunication through IP 103 is degrading at a sufficient rate thatcommunication via IP 301 will likely become preferred, even though thequality of communication via IP 301 is relatively static or perhapsimproving only slowly. Again, in this instance of degrading quality forcommunication via IP 103, MD 101 may determine that IP 301 will becomepreferred, and MD 101 may also initiate handover even though IP 103 isstill superior to IP 301 when MD 101 initiates handover procedures.

Once MD 101 can decide that either (i) IP 301 is preferred forcommunication or (ii) IP 301 may become preferred for communication, MD101 could initiate handover procedures that will be both rapid and alsoreduce the probability that a user will notice gaps, delays, ordistortion in the media during the handover process. Likewise, efficienthandover procedures can reduce the impact on media received at CN 108.Further, MD 101 may also automatically establish a duplicate media pathwhen the quality of the network through IP 301 reaches minimumthresholds, or the performance of either MN 102 or AN 117 is greater orless than specified parameters.

A duplicate media path can provide superior quality, and trends inquality may not be predictable. Thus, the techniques described in thepresent invention could be implemented for the purposes of rapidlyestablishing a duplicate media channel, with or without the intent ofterminating the first media session consisting of MS 1 and MS 2. Inaddition, a handover could be preferred in order to obtain increasedquality, reduced power, reduced interference, or other benefits fromsimply establishing a duplicate media channel through a separate IPnetwork than MN 102.

After acquiring the IP 301, MD 101 may determine a handover is preferreddue to the benefits of using AN 117. Perhaps prior to initiatinghandover, or perhaps during the establishment of the first media sessionthat includes MS 1 109 and MS 2 110, MD 101 in system 300 may evaluatewhether (i) CN 108 has an address that is fully routable on the publicInternet (i.e. does not belong to the set of private addresses in IETFRFC 1918) or (ii) CN 108 connects to the Internet via a NAT router.

MD 101 can use multiple methods in this evaluation, such as observing ifthe IP addresses and ports within fields of received SIP and/or SDPmessages match the actual ports used for media transmission in MS 2 110,or determining if the CN 108 user agent belongs to (a) a class ofgateways to the PSTN (which the MD could therefore reasonably expect tohave public IP addresses), or (b) a class of session border controllerswhich would also likely have public IP addresses. A software programoperating on MD 101, as opposed to the physical hardware, may evaluateif CN 108 has a publicly-routable IP address or rather connects to thepublic Internet via a NAT router. In addition, MD 101 will likely havean call-control channel—such as that illustrated in FIG. 2 b—implementedin order to set up MS 1 109 and MS 2 110, and MD 101 could query CN 108through the call-control channel, requesting that CN 108 to provide anassessment of its NAT environment.

Further, MD 101 could have gained knowledge of any NAT routers in frontof CN 108 during the setup of MS 1 109 and MS 2 110. Alternatively, CN108 may report its NAT environment to a centralized server such as aregistrar or proxy server 214, and MD 101 could submit a query to thecentral servers. CN 108 can evaluate the presence of any NAT routersbetween CN 108 and the Public Internet 106 via the techniquesillustrated in system 200. MD 101 could also query CN 108 directly byinserting a non-media “NAT query” packet within MS 1 and monitor for aresponse in a non-media “NAT response” packet in MS 2. In summary, thereare many methods available for MD 101 to determine if CN 108 has apublic IP address, or rather is connected to the Internet via a NATrouter such as a full cone NAT.

According to an exemplary preferred embodiment, MD 101 can evaluatebefore acquiring IP 301 whether CN 108 is assigned a public IP addressand, if not, what type of NAT router CN 108's network implements forInternet access, and together these two properties may be referred to asCN 108's NAT profile. Evaluating CN 108's NAT profile before acquiringnew IP addresses such as IP 301 can reduce the time required for MD 101to complete handover. However, MD 101 can bypass an evaluation of CN108's NAT profile and follow the other steps described in the presentinvention, although bypassing an evaluation of CN 108's NAT profile maynot be preferred if CN 108 connects to the Internet via a partial cone,port-restricted cone, or symmetric NAT.

If (i) CN 108 is assigned a public IP address as illustrated by thesystem 300 in FIG. 3, or (ii) CN 108 connects to the Internet via a fullcone NAT router (not shown), MD 101 may preferably begin transmitting athird media stream (MS 3) 302 from IP 301 to CN 108 with a destinationIP:port for the transmitted media packets of IP:port 122, once MD 101determines that handover is preferred, where MD 101 essentially bi-castsits outgoing media associated with the active media session to CN 108(and more particularly to the same IP:port 122) via MS 1 109 and MS 3302. MD 101 can—and preferably does—begin transmitting the third mediastream 302 before MD 101 stops transmitting the first media stream 109.

Transmitting MS 3 from IP 301 to IP:port 122 can provide multiplebenefits. First, IP:port 122 has already been established by CN 108 as aport for the receipt of media packets, so additional ports do not needto be opened and communicated to MD 101 via a call-control message orsimilar signaling techniques. Transmission of such as a call-controlmessage may take additional time to both process on the nodes as well astraverse the public Internet, which would slow down the handoverprocess. Further, if CN 108 is behind a NAT router (which it is not inFIG. 3), other ports on an external interface of the NAT router may notbe open and bound to a port on CN 108. Opening another port on a NATrouter besides IP:port 122 would require time and negotiation of callcontrol between CN 108 and MD 101, further slowing down the handoverprocess.

MD 101 preferably performs a “make before break” handover, such that MS1 109 and MS 3 302 are transmitted concurrently and includesubstantially the same media, although a “make before break” handover isnot required. A node such as MD 101 or CN 108 may transmit two packetsfor each codec frame (i) from a different source IP:port or (ii) to adifferent destination IP:port, and each packet can be considered tobelong to a separate media stream. MD 101 may transmit packets for MS 3302 from IP 301 via IP:port 303. The AN NAT 119 may convert the sourceIP:port in the packets transmitted by MD 101 in MS 3 302 from IP:port303 (i.e. 192.168.0.2:23334) on its internal interface to IP:port 304(i.e. 24.35.111.15:15500) on its external interface. Consequently, CN108 can observe the source IP:port of (i.e. for packets received inconnection with) MS 3 302 as received at CN 108 as IP:port 304.

“Transmitting concurrently” may refer to operating a software routinewithin MD 101 with sufficient speed that both IP:port 113 and IP:port303 each transmit a media packet on a sufficiently short time scale,such as with less than 200 milliseconds between the time when IP:port113 transmits a media packet and IP:port 303 transmits a media packetcomprising substantially the same media. Thus, although IP:port 113 andIP:port 303 may transmit at separate points in time on the timescale ofa computing device's operating system, which may be on the order ofmicroseconds for example, CN 108 could observe that MS 3 302 and MS 1109 are effectively duplicate media streams. For example, if 5 packetsin a row are dropped on MS 1 109 but not MS 3 302, a process operatingon CN 108 could receive copies of the dropped packets in MS 3 302 inorder to output media to a user associated with CN 108 withoutnoticeable gaps or delay. Note that the copies of media in MS 1 and MS 3could be—but do not have to be—identical.

CN 108 can accept and process the duplicate media streams withoutrequiring any previous signaling, because the various software routinesoperating on CN 108 may efficiently process duplicate media streams. Inaddition, if the media is transmitted as RTP, then the RTP softwarestack within CN 108 can also drop duplicate media packets. Softwareprograms that implement RTP according to the IETF RFC 3550 standard(which is hereby incorporated herein by reference) can ignore the sourceIP address of RTP packets, and can reject or accept media from thesynchronization source identifier (SSRC) within a packet containing RTPdata.

Thus, MD 101—using both IP 103 and IP 301—can transmit dual copies ofthe underlying media via MS 1 109 and MS 3 302 to CN 108, and CN 108 canmonitor IP:port 122 for both media streams. Transmitting MS 1 109 and MS3 302 via RTP is not required, and other methods for media transmissionand sequencing the media packets could be implemented. CN 108 couldidentify that duplicate media streams are received by observing thatpackets received from two different source IP addresses have equivalentsequence numbers in the media packets, and other methods for handlingduplicate media streams are available as well for those skilled in theart.

Alternatively, according to a second embodiment, before MD 101 beginstransmitting MS 3 302, a call-control message, such as a handoverrequest, could be sent by MD 101 to CN 108, in order to prepare CN 108to process the duplicate media streams or take other affirmativeactions, such as opening ports within firewall functionality that mayalso operate on CN 108, for example. The call-control message could besent via a call-control channel such as that illustrated in FIG. 2 b, orthrough a specified control packet transmitted within MS 1 109, oranother call-control channel established between MD 101 and CN 108. Thecall-control message could also be transmitted via the media controlchannel, such as from the mobile device to IP:port 124 associated withthe corresponding node (as shown in FIG. 1).

The call-control message to inform CN 108 of a handover could consist ofa call-control signal. Upon receipt of the call-control signal, CN 108could begin processing MS 3 302, although an explicit call-controlsignal may not be required. A call-control signal may be preferred, ifthe software operating at CN 108 will not process MS 3 302 unless acall-control signal is received, which could be the case if the softwareoperating at CN 108 drops or ignores packets received at IP:port 122that do not originate from IP:port 115.

The call-control signal informing CN 108 of a handover could consist ofa value for a UDP checksum in a packet transmitted by MD 101 within MS 1109. UDP checksums may be disabled by default in MS 1 109 for example,if MD 101 encodes media according to a traditional mobile voice codecsuch as GSM-EFR, AMR, AMR-WB, QCELP (Qualcomm Code Excited LinearPrediction). These and related mobile codecs are designed to berelatively bit-error robust, in order to compensate for potential biterrors resulting from noise in radio-frequency transmissions, and thusUDP checksums on the media packets may not be normally implemented ormay be set to a null value.

Consequently, MS 1 109 may initially be transmitted by MD 101 with UDPchecksums disabled or set to a null value, since CN 108 could prefer toaccept and process media packets received in MS 1 109 even with biterrors in the underlying datagrams. If UDP checksums are implemented byMD 101 in MS 1 109 and processed by CN 108, a media packet containinginformation encoded with a bit-error-robust codec could be entirelydropped by CN 108, even though processing the media packet with biterrors may be preferred in order to obtain an approximate representationof the transmitted media.

A signal indicating handover can be transmitted by MD 101 to CN 108 byenabling UDP checksums in MS 1 109 once MD 101 determines handover ispreferred, whereas UDP checksums may have been disabled by MD 101 priorto handover. In addition, CN 108 can continue to ignore UDP checksumsfor the purposes of accepting or rejecting media packets in MS 1 109,and simply note that the presence of non-zero or non-null checksumvalues indicates a handover is preferred, and subsequently CN 108 maybegin monitoring IP:port 122 for the presence of MS 3 302. Other changesto the values of UDP checksums could be implemented by MD 101 to signalto CN 108 that a handover is preferred. If the media is transmittedaccording to TCP, then changes in the TCP checksums could be implementedas well. Preferably, CN 108 can accept MS 3 302 without an explicitcall-control signal, but that capability may not always be available,due to firewall rules or legacy software operating at CN 108.

4. FIG. 4

FIG. 4 is a graphical illustration of an exemplary system where themobile device and corresponding node transmit and receive media duringhandover according to an exemplary embodiment. According to a preferredexemplary embodiment, CN 108 observes that the source IP address andport for MS 3 302 is IP:port 304, representing the external port on ANNAT 119 that binds to MD 101 IP:port 303. When CN 108 begins receivingpackets in MS 3 302, CN 108 may begin transmitting a fourth media stream(MS 4) 401, representing essentially a duplicate copy of MS 2 110. CN108 sends MS 4 401 preferably from IP:port 122, with a destinationaddress of AN NAT 119 IP:port 304.

One benefit of transmitting MS 4 401 packets from CN 108 with (i) thesource IP:port 122, which is the destination port in MS 3 302 and (ii)the destination IP:port 304, is that AN NAT 119 may be symmetric or aport-restricted cone. Alternative ports may be implemented as the sourceor destination port for MS 4 401, but that would likely requireobtaining the proper port bindings between MD 101 and AN 119 throughtechniques such as that illustrated in system 200, as well ascommunicating the ports between MD 101 and CN 108 via a call-controlchannel or call-control packets inserted in MS 1 109 or MS 3 302.Obtaining new port bindings and communicating the ports prior to thetransmission of media may significantly slow the handover process. CN108 could transmit to a different destination port than IP:port 304, ifAN NAT 119 was a full cone or restricted cone NAT, but again in thatcase CN 108 may need to be informed of the type of NAT that AN NAT 119is, which would undesirably require communication and processing time.Consequently, the transmission of MS 4 401 from IP:port 122 to IP:port304 may be preferred.

According to a preferred exemplary embodiment, CN 108 may begintransmitting MS 4 401 without receiving an explicit handovercall-control message from MD 101. CN 108 can observe the receivedduplicate media streams MS 1 109 and MS 3 302, where media istransmitted from MD 101 via two separate IP addresses, IP 103 and IP301. The receipt of duplicate media streams may signal to CN 108 that MD101 is initiating handover and has a new, preferred IP address 301,observed by CN 108 to be the public IP address belonging to AN NAT 119.

This logical call-control signal consisting of duplicate media may betransmitted from MD 101 to CN 108 before a separate call-control messagesuch as a SIP Re-INVITE or SIP UPDATE is sent via the call-controlchannel illustrated in FIG. 2 b. A benefit of automatically sendingduplicate media streams MS 2 110 and MS 4 401 from CN 108 is that thetime needed for conducting the handover can be reduced. For example, theSIP Re-Invite message normally would be passed through the call-controlchannel, which may require processing on multiple intermediate serversand slow the handover process.

Alternatively, a handover message could be inserted within MS 3 302 orMS 1 109, informing CN 108 to initiate transmission of MS 4 401. If thehandover message (i) is inserted within MS 3 302 or MS 1 109 and (ii)can be properly processed by CN 108, this would require CN 108 tomonitor IP:port 122 for both media and call control. The mixing of mediaand call control on the same port may not be readily implemented withpresent, unmodified versions of standard protocols such as such as SIP,XMPP, MGCP, or H.323, and may not be preferred with current releases ofthose standards. However, the standards could be modified to allow thetransmission of a call-control message within media streams, thusspeeding and simplifying a handover process. The mixing of media andcall control within the same pair of UDP ports may be more readilyimplemented with (i) a proprietary protocol such as Skype®, (ii) IAX2capable clients and hosts, or (iii) similar protocols which providingmixing of call-control messages and media within the same stream of UDPor TCP packets.

According to a second exemplary embodiment, after MD 101 beginstransmitting MS 3 302, MD 101 then transmits a call-control message toCN 108 via a call-control channel—such as that illustrated in FIG. 2 band used to establish the original call that set up MS 1 109 and MS 2110. The call-control message can (i) inform CN 108 of the handover and(ii) instruct CN 108 to begin transmitting MS 4 401. This call-controlmessage could be sent by MD 101 through IP 103 or IP 301, although IP103 is likely preferred since a call-control channel with CN 108 mayhave been previously set up through IP 103 in order to establish themedia session illustrated in system 100.

Assuming IP 103 retains a sufficient quality network connection, sendingcall control through IP 103 would likely be faster than (i) attemptingto set up a new call-control channel via IP 301 and then (ii) processingthe call-control message via IP 301. The call-control message may informCN 108 to begin transmitting media to MD 101 via IP:port 304 on AN NAT119, if present. The handover call-control message could be implementedwithin existing protocols such as SIP, XMPP, IAX2, or Skype®, orextensions to these or other protocols could be implemented to handlethe request for a new media stream MS 4 401 to be directed to IP:port304 while CN 108 continues to receive MS 3 302 at IP:port 122. CN 108may keep IP:port 122 as its receive port for MS 3 302 in order to avoidnegotiating new port bindings between MD 101 and AN NAT 119.

Preferably, the handover for media from CN 108 to MD 101 is implementedvia “make before break” methods, whereby MS 4 401 and MS 2 110 can betransmitted concurrently for a period of time until the handover iscomplete. That is, CN 108 could begin transmitting MS 4 before CN 108stops transmitting MS 2 110. CN 108 should preferably transmit MS 4 401to the port observed as the originating IP:port for MS 3 302, which isillustrated as IP:port 304 in system 400. If the CN 108 implementsstandards which (i) do not support “make before break” methods and (ii)only support the equivalent of call-transfer or media-redirect methods,then MS 4 401 can be set up effectively at the same time that MS 2 110is torn down, representing a “break before make” handover for media fromthe CN 108 to MD 101 at IP 301.

For example, if the SIP protocol is implemented on a legacy gateway tothe PSTN at CN 108, the call-control signal from MD 101 could be a SIPRe-Invite or SIP UPDATE message or similar messages indicating a changein the destination IP:port for media transmitted from CN 108.Transmitting duplicate media streams to two different IP addresses maynot be deployed with many presently-installed SIP implementations. Evenif “break before make” methods are implemented for the setup of MS 4401, media packets should not be dropped because MD 101 canmonitor—perhaps concurrently—both IP:port 114 and IP:port 303 for thereceipt of media transmitted by CN 108.

“Monitoring concurrently” may refer to (i) a software program 204 or asoftware routine within MD 101, (ii) the operating system 203, or (iii)a device driver 202, and/or (iv) hardware within MD 101 operating withsufficient speed such that both IP:port 114 and IP:port 303 are eachpolled for receipt of a media packet on a sufficiently short time scale,such as less than every 200 ms. Thus, although IP:port 114 and IP:port303 may be polled at separate points in time on the timescale of acomputing device's operating system, such as an amount of time on theorder of microseconds, the net effect of the rapid switching time isthat the ports are monitored concurrently and packets are not dropped.

For example, if several packets in a row are dropped in MS 4 401 due topoor network conditions, but not dropped in MS 2 110, a processoperating on MD 101 can switch between IP:port 114 and IP:port 303 withsufficient speed such that all packets are acquired and media is playedout to a user without significant gaps or delay. One objective of either(i) monitoring concurrently IP:port 114 and IP:port 303 or (ii)monitoring both IP:port 114 and IP:port 303 could be to reduce possibledistortions or gaps in audio or video observed by a user.

5. FIG. 5

FIG. 5 is a graphical illustration of an exemplary system where themobile device and corresponding node transmit and receive media uponcompletion of a handover according to an exemplary embodiment. In system500 illustrated in FIG. 5, CN 108 transmits MS 4 401 to IP 301 usingIP:port 304 as the destination port in the packets transmitted. Thisfacilitates the media being properly forwarded to MD 101 listening onthe IP:port 303, since the AN NAT 119 would generally otherwise droppackets on ports not previously opened by MD 101 and properly bound byAN NAT 119. Alternative techniques to establish a different IP:port 304on AN NAT 119 for CN 108 to transmit media to MD 101 at IP 301 may bothtake time and also may not be readily discernable in any case, such asif AN NAT 119 is a symmetric NAT and CN 108 is also behind a symmetricNAT. If the subscriber's premises at the alternate network 117 are acorporate office building or other LAN with higher security requirementsthan a consumer DSL environment, the AN NAT 119 could well be symmetric,though it could also be so in other contexts.

Voice activity detection (VAD) may preferably be disabled within MS 3302 in order to keep IP:port 304 open and bound on AN NAT 119. Forexample, if the G.729a codec is implemented by MD 101 and the user issilent for an extended period such as 120 seconds, AN NAT 119 may closeIP:port 304 to inbound packets on the external interface since a timeoutperiod on the port bindings may expire. Consequently, MD 101 shouldperiodically send packets from IP:port 303 in order to keep IP:port 304open and bound, even if media is not present, perhaps (i) sending apacket from IP:port 303 at an interval of every 30 seconds or (ii)sending media packets with silence descriptor frames.

MD 101 may also wish to establish a new media control channel with theCN 108 after MS 3 and MS 4 are established. As discussed previously, amedia control channel allows a transmitting endpoint to evaluate thequality of media received at the receiving endpoint and subsequentlymake adjustments for transmitted media in attempt to improve the qualityreceived. A media control channel can be useful for both MD 101 and CN108 to determine that the handover is complete and successful beforeterminating MS 1 or MS 2, respectively. For example, during a handoverperiod where all four media streams are transmitted concurrently, bothMD 101 and CN 108 may prefer to receive feedback from the receiving nodethat the new media streams MS 3 and MS 4 are properly being receivedwith sufficient quality.

Without a media control channel, there may not be a feedback mechanismto message a transmitting node about the quality of media received. Forexample, MD 101 may have projected that IP 301 would be preferred forcommunication, but the underlying network performance could suddenlychange, perhaps due to unexpected congestion on the internal LAN withinalternate network 117, immediately after handover had been initiated.

In general, MD 101 and CN 108 could programmatically decide to terminateMS 1 and MS 2 and complete the handover based on feedback from a mediacontrol channel such as RTCP, SCTP, or proprietary methods, among otheroptions. MS 1 109 and MS 2 110 may be terminated after quality data in amedia control channel confirms that the quality of MS 3 302 and MS 4 401meets acceptable thresholds. Further, decisions on terminating MS 1 109and MS 2 110 could be made independently.

System 500 in FIG. 5 illustrates the transmission of the media controlchannel as RTCP, although other techniques such as SRTCP or proprietaryprotocols could be implemented. In addition, media control channel couldoptionally be included as periodic messages transmitted within the mediastream, which is implemented in the IAX2 protocol, for example. Thebenefit of mixing media and media control within the same UDP stream isthat fewer NAT ports have to remain bound and open for communication.Further, the implementation of a media control channel could be omitted.Upon receipt of MS 4 401, MD 101 may begin evaluating the quality of themedia and can prepare an RTCP receiver report for transmission to CN108. MD 101 may use the next highest UDP port from IP:port 303 totransmit the RTCP report, which is shown as IP:port 501. Other ports forthe media control channel at MD 101 may be used as well.

As illustrated with system 300, MD 101 may have previously evaluatedthat CN 108 has an address that is fully routable on the publicInternet, which would be common if CN 108 is (i) a gateway to the PSTNor (ii) operates as a relay for communication with a terminating node.MD 101 should be able to transmit RTCP messages to CN 108 at IP:port124, since that IP:port was implemented by CN 108 to receive RTCPreports for media stream 2 110 as illustrated in system 100.Consequently, MD 101 can establish a new media control channel bysending RTCP reports for MS 4 401 from IP:port 501 to IP:port 124, andduring this process AN NAT 119 can create a new external port bindingIP:port 502.

The new media control channel for MS 4 is illustrated as RTCP stream 4503 in FIG. 5. Since MD 101 may be located behind AN NAT 119, CN 108 maynot be able to readily transmit an RTCP report for MS 3 302 until CN 108can determine the proper port on AN NAT 119 that would forward packetsto MD 101 at IP:port 501. Upon receipt of RTCP stream 4 503 at CN 108,the corresponding node can observe the originating IP:port 502 withinthe IP headers of the RTCP report packet. Consequently, CN 108 may nowbegin transmitting RTCP reports for MS 3 302 to IP:port 502 on AN NAT119, thereby creating RTCP stream 3 504. AN NAT 119 forwards packets inRTCP stream 3 504 to IP:port 501 on MD 101 at IP 301.

Thus, in order to effectively support a media control channel through ANNAT 119, MD 101 may implement the same IP:port for both sending andreceiving media control packets, as shown by IP:port 501. In addition,in order to reduce the time required to receive RTCP Stream 3 504, MD101 may transmit a port-binding packet either before (i) receiving MS 4401 or (ii) preparing a quality report for MS 4 401, in order toproperly open and bind IP:port 502 for the receipt of media controlchannel packets. The port-binding packet could be a TCP or UDP packettransmitted from IP:port 501 by MD 101 to IP:port 124 on CN 108. Forexample, although a full RTCP receiver report for MS 4 401 may not beavailable immediately upon handover and may normally be processed overan interval such as every 30 seconds, MD 101 could preferably receiveRTCP receiver reports from CN 108 for MS 3 302 before the RTCP receiverreport for MS 4 401 is available. However, in order to receive RTCPreceiver reports from CN 108 for MS 3 302, IP:port 502 should be opened,and thus MD 101 could transmit a port-binding packet.

Other benefits can be achieved by implementing the same IP:port 501 onMD 101 for both sending and receiving the media-control-channelmessages, in addition to simplifying the NAT traversal formedia-control-channel messages. If (i) a separate port is implementedfor transmitting and receiving media-control-channel messages at eachnode, and (ii) sender reports are not implemented or transmitted lessfrequently (such as every 120 seconds), the AN NAT 119 IP:port 502 mayclose due to lack of outbound traffic from MD 101 sent from IP:port 501.Through transmitting RTCP receiver reports from MD 101 via RTCP stream 4503, as illustrated by system 500 in FIG. 5, on a periodic basis (suchas every 30 seconds), the inbound IP:port 502 should remain properlyactive and bound, thereby allowing CN 108 to continue sending RTCPmessages to MD 101 for the duration of the media session after handoverstarted. Although generally not standardized, many common NATs willclose inbound UDP ports if outbound packets have not been received inthe previous 60 seconds.

When MD 101 determines that handover is complete, it may send acall-control signal via a system such as that depicted in FIG. 2 b tothe CN 108 to terminate MS 2 and the corresponding media controlchannel, if implemented. MD 101 may also then terminate MS 1 and arelated media control channel RTCP 1, if implemented. The completion ofthe handover could also be signaled by the corresponding node. Inaddition, the signal to stop transmitting MS 1 and MS 2 could be alogical signal as opposed to the transmission of an explicitcall-control message. An example of a logical signal could be thetranspiring of a period of time where the new media streams have beentransmitted concurrently with sufficient quality, such as 45 seconds.

Note that the call-control channel implemented through the systemdepicted in FIG. 2 b that established the initial media sessionillustrated in system 100 may need to be transferred from IP 103 to IP301, and many methods are available to those of ordinary skill in theart. The transfer of a call-control channel to terminate MS 1 or MS 2may be less time-sensitive than messages or signals to indicate thehandover of media. A delay of several hundred milliseconds or more dueto call-control processing to terminate MS 1 109 and MS 2 110 wouldlikely not be noticeable to an end user, while a delay or gap of a fewhundred milliseconds or more in audio would likely be noticeable andshould be avoided. In addition, MD 101 and CN 108 could continue totransmit either MS 1 109 or MS 2 110 for the entire duration of MS 3 302and MS 4 401, waiting until the user is finished with the entire mediasession before any individual media stream is terminated.

6. FIG. 6

FIG. 6 is a simplified flow chart for exemplary handover proceduresaccording to an exemplary embodiment. In FIG. 6 and other flow chartsdescribing the present invention, the processes and operations of thehandover method described below with respect to all of the logic flowdiagrams may include the manipulation of signals by a processor and themaintenance of these signals within data structures resident in one ormore memory storage devices. For the purposes of this discussion, aprocess can be generally conceived to be a sequence of computer-executedsteps leading to a desired result.

These steps usually require physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical, magnetic, or optical signals capable of beingstored, transferred, combined, compared, or otherwise manipulated. It isconvention for those skilled in the art to refer to representations ofthese signals as bits, bytes, words, information, elements, symbols,characters, numbers, points, data, entries, objects, images, files, orthe like. It should be kept in mind, however, that these and similarterms are associated with appropriate physical quantities for computeroperations, and that these terms are merely conventional labels appliedto physical quantities that exist within and during operation of thecomputer.

It should also be understood that manipulations within the computer areoften referred to in terms such as listing, creating, adding,calculating, comparing, moving, receiving, determining, configuring,identifying, populating, loading, performing, executing, storing etc.that are often associated with manual operations performed by a humanoperator. The operations described herein can be machine operationsperformed in conjunction with various input provided by a human operatoror user that interacts with the computer.

In addition, it should be understood that the programs, processes,methods, etc. described herein are not related or limited to anyparticular computer or apparatus. Rather, various types of generalpurpose machines may be used with the following process in accordancewith the teachings described herein.

The present invention may comprise a computer program or hardware or acombination thereof which embodies the functions described herein andillustrated in the appended flow charts. However, it should be apparentthat there could be many different ways of implementing the invention incomputer programming or hardware design, and the invention should not beconstrued as limited to any one set of computer program instructions.

Further, a skilled programmer would be able to write such a computerprogram or identify the appropriate hardware circuits to implement thedisclosed invention without difficulty based on the flow charts andassociated description in the application text, for example. Therefore,disclosure of a particular set of program code instructions or detailedhardware devices is not considered necessary for an adequateunderstanding of how to make and use the invention. The inventivefunctionality of the claimed computer-implemented processes will beexplained in more detail in the following description in conjunctionwith the remaining Figures illustrating other process flows.

Further, certain steps in the processes or process flow described in allof the logic flow diagrams below must naturally precede others for thepresent invention to function as described. However, the presentinvention is not limited to the order of the steps described if suchorder or sequence does not alter the functionality of the presentinvention. That is, it is recognized that some steps may be performedbefore, after, or in parallel with other steps without departing fromthe scope and spirit of the present invention.

The processes, operations, and steps performed by the hardware andsoftware described in this document usually include the manipulation ofsignals by a CPU or remote server and the maintenance of these signalswithin data structures resident in one or more of the local or remotememory storage devices. Such data structures impose a physicalorganization upon the collection of data stored within a memory storagedevice and represent specific electrical or magnetic elements. Thesesymbolic representations are the means used by those skilled in the artof computer programming and computer construction to most effectivelyconvey teachings and discoveries to others skilled in the art.

In FIG. 6, at Step 601, MD 101 establishes a media session such as avoice call with a CN 108, utilizing a first IP address such as an IPaddress provided by a mobile network operator. The media session couldbe established through call-control messages such as SIP INVITE, IAX2NEW, XMPP Request, or other similar messages according to a protocolimplemented by MD 101. In addition, MD 101 and CN 108 may not implementthe same call-control protocol, and an intermediate server may translatethe call-control messages between the two nodes. Although a request fora media session is described as originating from MD 101, a request toinitialize a session could be requested from the corresponding node,representing an incoming call to the mobile device. Further, the voicecall illustrated in FIG. 6 at Step 601 could initially be set up via alocal network such as WiFi.

As shown in Step 602, upon establishment of the media session, a firstmedia stream MS 1 109 is transmitted from MD 101 to CN 108, and a secondmedia stream MS 2 110 transmitted from CN 108 to MD 101. The mediasession may optionally include a separate media control channel orprotocol, such as RTCP or SRTCP, or the media control channel couldpossibly be imbedded directly into the media stream, as with IAX2.Preferably, quality feedback is provided by RTCP, SRTCP, similarprotocols, or media control packets inserted into the media stream to(i) monitor the quality of received media received at another node and(ii) allow adjustments such as changing a codec, implementing forwarderror correction, or taking other steps to attempt to improve callquality.

At Step 603, the mobile device 101 evaluates whether the correspondingnode 108 has an IP address that is (i) publicly routable or (ii) behinda full cone NAT. CN 108 would likely be publicly routable if it is (i) arelay to communicate with a terminating node, (ii) a gateway to thePSTN, (iii) an application layer gateway similar to MN NAT 105illustrated in system 100, or (iv) a home agent (HA) within the MobileIP specification (IETF RFC 3344, which is hereby incorporated herein byreference, and related standards), among other publicly-routablepossibilities.

CN 108 may be behind a full cone NAT if CN 108 is a peer-to-peer clientoperating on a computer behind a consumer broadband connection, forexample, since many consumer NATs are the full cone type. CN 108 may bebehind a symmetric NAT or a port restricted cone NAT if it operateswithin a corporate LAN, for example, and other combinations of NAT typesand alternate networks are possible as well. MD 101 may not be able todetermine if CN 108 is publicly routable or behind a full-cone NATdirectly, but rather could query CN 108 or a server on the internet witha stored profile for CN 108, such as server 214. Further, Step 603 couldbe determined before step 602, such as when the initial media sessionwas requested in Step 601. In this case, a NAT profile of CN 108 couldbe stored in memory on MD 101 during Step 601 and then retrieved frommemory during later handover procedures such as at Step 603.

At Step 604, the mobile device acquires a second IP address, such as IP301 and determines that handover of the active media session to the newIP address is preferred. One of many example possible parameters todetermine whether handover is preferred include whether handover willreduce consumption of network resources for the mobile network 102, oralternatively if call quality will be improved. Further, a softwareprogram or a communications service operating on MD 101 could simplydetermine that establishing a duplicate media path via IP 301 isdesirable regardless of the trends in quality, from the benefits oftransmitting media through two independent communications channels (viaIP 301 and IP 103), which can increase the quality received at both thecorresponding node and the mobile device.

At Step 605, the mobile device 101 can begin transmitting a third mediastream using IP 301, preferably to the same destination IP:port that MD101 utilizes for the first media stream. Other destination ports couldalso be implemented as the destination IP:port for the third mediastream, but a change in the receiving port on CN 108 would requiresignaling and processing overhead to negotiate the port with MD 101. Byimplementing standard methods available in protocols such as UDP, RTP,IAX2, or proprietary protocols with similar functionality, the duplicatemedia stream MS 3 302 should not degrade quality or cause otherproblems, and receipt of essentially duplicate media at thecorresponding node could enhance call quality.

At Step 606, the CN 108 may begin receiving MS 3 and can monitor theoriginating IP:port 304 as the source IP:port within the packets of themedia stream. The duplicate media streams MS 1 and MS 3 may be usefulfor CN 108 to maintain audio quality if the quality of MS 1 degradeswhile the handset moves away from base station 104 or into a location ofreduced coverage or lower signal-to-noise ratios, such as movement intoa building, or in other scenarios. If packets are dropped or containerrors in MS 1, CN 108 may compensate for the errors by substituting themedia in MS 3.

At Step 607, the corresponding node begins transmitting a duplicatemedia stream MS 4 to the mobile device, preferably utilizing IP:port 122as the originating port and sending the traffic to IP:port 304 on the ANNAT 119. Thus, MD 101 should receive MS 4 without requiring thenegotiation of additional or new ports on both the AN NAT 119 and CN108. MD 101 preferably monitors IP:ports 303 and 114 concurrently forthe receipt of both MS 2 and MS 4. Again, the duplicate media streams MS2 and MS 4 may be useful for MD 101 to maintain audio quality ifcommunication through IP 103 begins to deteriorate, and the packets fromMS 4 can compensate for potential loss or errors within MS 2.

The initiation of MS 4 could be programmed on the CN 108 to be automaticif the CN 108 observes the receipt of duplicate media at IP:port 122, orMS 4 could be initiated through a call-control signal transmitted viathe call-control channel illustrated in FIG. 2 b. The receipt ofessentially duplicate media at IP:port 122 can also function as thecall-control signal, and in this case the call-control signal is logicalas opposed to a separate packet or call-control message. If CN 108implements a legacy protocol and cannot transmit the duplicate MS 2 andMS 4 concurrently, then MS 4 could be initiated as soon as feasibleafter MS 2 is terminated, and preferably within 50 ms or receipt of acall-control message indicating handover.

At Step 608, the MD 101 may optionally establish a media control channelsuch as RTCP or similar protocols for the new MS 4 that MD 101 receives.Reports on quality, such as a RTCP receiver reports, may be sent back tothe CN 108 at IP:port 124. By sending a packet to this IP:port 124 fromIP:port 501, MD 101 can open and bind a new port on AN NAT 119, wherebyCN 108 can subsequently send media control channel packets back to MD101 for MS 3 at IP:port 502. CN 108 may need to change its originatingport for media control channel packets to the port number where itreceives media control channel packets, in order to support possiblesymmetric NAT or port restricted cone functionality on AN NAT 119. Themedia control channel process illustrated in Step 608 may be omitted,although it could be useful for MD 101 and CN 108 to monitor quality ofthe new media streams.

At Step 609, the handover is completed and MD 101 may stop transmittingMS 1, CN 108 may stop transmitting MS 2, and the associated mediacontrol channels, if implemented, may be closed. The signaling toterminate MS 1 and MS 2 could be sent through the call-control channelillustrated in FIG. 2 b, or via a call control packet inserted in themedia streams. Step 609 may be optionally omitted, such that MS 1 and MS2 will continue for the duration of the user's media session.

7. FIG. 7

FIG. 7 is a simplified message flow diagram illustrating the handovercall-control messages and media flow between the mobile device andcorresponding node according to an exemplary embodiment. The protocolillustrated in 700 is according to common, current implementations ofthe SIP protocol, but many protocols that can establish media sessionsbetween endpoints on the Internet could be used.

At Step 701, the mobile device and corresponding node establish a mediasession according to methods that are well known in the art. Note thatMD 101 may begin transmitting media, media stream 1, before “200 OK” orequivalent, since MD 101 may be behind a mobile network NAT (MN NAT)105. The NAT ports for receipt of audio information in media stream 2,such as ringing tones or busy tones, may not be possible until anexternal NAT port on MN NAT 105 is opened. Alternatively, an applicationlayer gateway on MN NAT 105 could properly negotiate and open the ports.Although media is shown as RTP in Step 701, media could be transmittedaccording to other protocols.

At Step 702, the MD 101 acquires a second IP address and determines thathandover is preferred. The acquisition of the second IP address and thehandover decision may be handled at different program levels within themobile device. For example, the mobile device operating system 203 maymanage the acquisition of a second IP address, while a softwareapplication or software module may determine that handover is preferred.For example, a software routine that is running within the operatingsystem 203 may determine that handover is preferred. Another example isa program such as Truephone® or MSN Messenger® could monitor the qualityof an existing media session and could observe the second IP address, IP301, and measure the quality of the second IP address to make decisionsregarding handover.

At Step 703, the mobile device begins handover. The mobile device maytransmit media stream 3 to the corresponding node. The destinationIP:port for MS 3 302 is preferably the same IP:port the MD 101implements for MS 1 109, which is IP:port 122 as illustrated by system300 in FIG. 3. Other destination ports could be used, which would likelyrequire additional signaling between MD 101 and CN 108. Upon receipt ofMS 3 by the CN 108 at IP:port 122 from the alternate network 117, the CN108 begins transmitting MS 4 to the mobile device, preferably to theIP:port 304 observed by CN 108 as the originating or source IP:port forMS 3.

Note that an AN NAT 119 may not be present, in which case IP:port 304and IP:port 303 could be the same. Again, other ports could be used asthe destination IP:port for MS 4 as transmitted by CN 108, but that mayrequire opening the ports on the AN NAT 119, if present, and negotiatingthe change in ports between MD 101 and CN 108. MD 101 may monitorIP:port 303 for the receipt of MS 4, preferably while continuing toreceive MS 2 on IP:port 114. MD 101 may also send a call-control signalto CN 108 to indicate that handover is requested, such as through a SIPRe-INVITE message via the call-control channel illustrated in FIG. 2 b.

At Step 704, a media control protocol such as RTCP may be used, in whichcase MD 101 may send a packet to IP:port 124 from IP:port 501 to openand set the AN NAT 119 port 502. Note that (i) a packet can be sentsimply to open the port (i.e., an actual complete RTCP receiver reportor similar media control message is not required) and (ii) actual mediacontrol messages can be transmitted later in the handover.

The packet sent from IP:port 501 to IP:port 124 in order to open andbind IP:port 502 on AN NAT 119 may be referred to as a port-bindingpacket. Opening AN NAT 119 port 502 early in the handover process may bepreferred, such as within a few seconds of the start of transmission ofmedia stream 3, since utilizing the media control channel to evaluatequality could be helpful for determining when the handover issuccessful. Also, opening AN NAT IP:port 502 early in the handoverprocess, such as before an RTCP receiver report is available for MS 4401 allows CN 108 to transmit a RTCP receiver report to IP:port 502,which is forwarded to IP:port 501, providing MD 101 feedback on thequality of MS 3 302 received by CN 108.

When both MD 101 and CN 108 acquire sufficient data for reporting thequality of media streams 4 and media streams 3, respectively, reportmessages on quality such as RTCP or SRTCP receiver report messages maybe transmitted and received on (i) MD 101 at IP:port 501 via IP:port 502on the AN NAT 119 and (ii) CN 108 at IP:port 124. Other RTCP ports maybe used, which would require proper negotiation between MD 101 and CN108, as well as properly binding ports on AN NAT 119, if present.

At Step 705, after the handover is completed and the users have finishedthe media session, the MD 101 may terminate the call and end MS 3 and MS4, via standard methods such as a “BYE” with SIP or similar messages inrelated protocols.

8a. FIG. 8 a

FIG. 8 a is a simplified tabular summary illustrating packet receivedtimings and jitter-buffer settings during handover for a mobile deviceaccording to an exemplary preferred embodiment. As discussed previously,the corresponding node may implement legacy software or standards and beunable to transmit dual media streams to MD 101. One example may be ifthe corresponding node is an analog telephone adapter that was commonlydeployed before 2008. Another example could be if the corresponding nodewas a Cisco AS-5530 gateway with an operating system of IOS 12.3.

Both of these example corresponding nodes may implement the SIPprotocol, but may not support the change in IP address for MD 101 in amanner that includes the transmission of duplicate media streams. Inthis instance, the MD 101 could issue a SIP Re-Invite or similarmessages to change the destination IP address for media transmitted fromthe CN 108. This can establish the new media stream 4. However, iflegacy standards are implemented, MS 2 would likely be terminated at thesame time MS 4 is initiated, resulting in a possible temporary increasein packet delay during the transition. An illustration of this delay anda recommended example solution is illustrated in FIG. 8 a.

The Source IP 801 in FIG. 8 a shows an example source IP address andport number for media packets received at MD 101. The Destination IP 802in FIG. 8 a shows an example destination IP address and port number formedia packets received at MD 101. The Packet Receipt Time 803 shows anexample time increment when MD 101 receives each media packet. In thisillustration, the media is transmitted according to a codec with 20 msframes, such as GSM-EFR, AMR, standard G729.b frames, iLBC with 20 msframes, or G.711 transmitted at 50 packets per second. The “Time SinceReceipt of Previous Packet” 804 illustrates in milliseconds the delayand variation in delay from the underlying packet switched network.

With a high-quality, managed network planned for next generation,IP-based mobile networks such as WiMax or LTE, the jitter should remainrelatively low under normal circumstances. One common measure of jitteris the standard deviation of packet arrival time, which is also shown asJitter 805 in FIG. 8 a. For example, during the last 15 packets receivedby MD 101 and transmitted by CN 108 via the mobile network 102 andwithin MS 2 110, the jitter is approximately 6.8 milliseconds.

A jitter buffer is commonly used with VoIP applications in order tosmooth the playout of media and avoid dropping incoming packets due tounevenly spaced packet arrival times. Under normal circumstances, ajitter-buffer size of 60 ms should be sufficient to handle networkjitter of 6.8 ms, as illustrated in the “Default Jitter Buffer Size” 806column. Also, note that reducing a jitter buffer is generally preferred,by reducing delay for observed speech or transmitted media. However, thetradeoff for reducing the jitter buffer is that packets could be droppedif they arrive outside of the jitter-buffer window.

As shown in FIG. 8 a and highlighted in bold, applying the defaultjitter-buffer size of 60 ms may result in lost packets during thehandover with receipt of the first media packet after handover being attime 13:23:54.668. Note the example significant increase in delay forthe first packet received represents a “break before make” handoverimplemented for media transmitted by the corresponding node. The delayprofile for packets received will likely change upon handover, as themedia packets take a new route through the Internet. In addition, thereis some overhead processing time required on CN 108 to (i) process theSIP Re-Invite or equivalent message in a different protocol and (ii)change the routing of outbound packets from MS 2 to MS 4 during a “breakbefore make” handover.

The example delay for packets received may have a significant spike forthe first packet received at IP 301, as illustrated at time13:23:54.668. The example packet delay shown falls outside the defaultjitter-buffer window illustrated in the “Default Jitter Buffer Size” 806column, so the packet highlighted in bold would be dropped. In fact,more than one packet may be dropped immediately after handover in theexample shown in FIG. 8 a, as the jitter buffer attempts to rapidlyexpand and address the significantly different jitter profile thatresults from the new routing of inbound media packets to MD 101.

According to a preferred embodiment of the present invention, thejitter-buffer size in the MD 101 can be increased gradually beforetransmission of a SIP Re-Invite or similar handover call-control messageor signal, in order to address a possible temporary increase in jitterfor received media packets upon handover. The function of a “handoverpredicting jitter buffer” 222 is illustrated in the “Handover PredictingJitter Buffer” column 807. With a handover-predicting jitter buffer 222,a software routine may increase the size of the jitter buffer beforehandover, and decrease the size of the jitter buffer after handover.

The rate of increase and then decrease in the jitter-buffer size or theplayback of media from the jitter buffer could be sufficiently small toavoid significant distortion of audio or video playback to users.Although an example step is shown in FIG. 8 a of adjusting the jitterbuffer by 5 ms for approximately every 20 ms of audio received, theadjustment could be a smaller step such as 2-3 ms for every 20 ms ofaudio received. In addition, the step function of increases inincrements of 5 ms shown in column 807 could represent the graduallengthening of playback of media to a user, while thehandover-predicting jitter buffer could implement a larger increase inthe actual buffer size. During stable periods before and after thehandover, the handover-predicting jitter buffer 222 size could match a“Default Jitter Buffer Size” 806, such as 60 ms before handover and 80ms after handover as illustrated. Other default jitter-buffer sizescould be used, depending upon the jitter profile of packets receivedbefore and after handover.

A handover-predicting jitter buffer can smooth the playback of audio ifthe jitter profile suddenly changes upon handover. For example, if thecorresponding node 108 is a gateway to the Public Switched TelephoneNetwork (PSTN) that implements the SIP protocol, such as a Cisco AS-5400or similar gateway, a SIP Re-Invite command from MD 101 typically willneed to be issued to direct the gateway to establish MS 4 401 whileterminating MS 2 110. Since the sequence and number of hops for themedia packets sent to MD 101 from the gateway will change, the jitterprofile of the arriving media will also likely change and cansignificantly increase.

If (a) the initial media session was set up on the MN 102 and (b) thegateway, or CN 108, also resides on MN 102, the jitter may be a lowervalue before a handover to alternate network 117, with Internet accessprovided by a third party ISP. The reason is that the mobile operatormay control the network and all router hops between the mobile deviceand the gateway through the mobile network in this example and thus canmanage packet jitter and delay. When the MS 2 is switched to MS 4 andtransmitted to AN NAT 119, the packets transmitted by CN 108 maytraverse the public Internet and likely have additional hops to reachthe ISP that provides broadband service for the AN NAT 119, resulting inadditional jitter. As illustrated in FIG. 8 a, a handover-predictingjitter buffer can increase the jitter-buffer window prior to handover toavoid distortion of the audio that would result from (i) packets beingdropped by falling outside of the jitter buffer window or (ii) a rapidincrease in the default jitter buffer size to compensate for the sudden,unexpected increase in jitter at handover.

8b. FIG. 8 b

FIG. 8 b is a flow chart illustrating exemplary steps for a softwareroutine to monitor the trend in the quality of network connections andto determine whether a handover is preferred. In Step 808, MD 101 beginsmonitoring an alternate network such as AN 117, such as when a newnetwork is initially detected through a physical interface 201. In Step809, MD 101 measures the quality of the network providing services forIP 103, such as measuring signal-to-noise ratios, bit errors, packetloss, delay, etc., and MD 101 could record the measurement in memory tokeep a trend of the data over time for subsequent analysis.

Similarly, MD 101 can measure the quality of the network providingservices for IP 301 in Step 810 and also update memory with the newmeasurement. The measurements in 809 and 810 could also includeevaluations of other network characteristics, such as the totalbandwidth available. At Step 811, MD 101 can extrapolate trends inperformance into the future for network quality on the two networks,such as predicting performance over the next 10 seconds, as one example.The extrapolation could be performed using linear regression or anotherregression technique that best suits the data, such as an exponentialregression for example. In addition, the sequence of steps 809, 810, and811 could be in a different order.

In Step 812, a software routine compares the predicted networkperformance in the future, using the extrapolated trends predicted inStep 811. The example timeframe for evaluation is illustrated is 5seconds in the future in FIG. 8 b, although other timeframes could beused. The timeframe in the future could also be dynamically determinedbased upon the rate of change in repeated measurements in Step 809 andStep 810. For example, if the network quality is observed as rapidlychanging, then the timeframe to compare the two connections in thefuture could be smaller, such as comparing the two networks 2 secondsinto the future. If the network quality is observed as being morestable, then the timeframe to compare the two connections in the futurecould be larger, such as comparing the two networks 15 seconds into thefuture.

At Step 812, if the software routine determines that the networkproviding services via IP 103 is preferred, no handover request is madeand the network monitoring returns to Step 809 and may continue. If thesoftware routine determines that the network providing IP 301 will bepreferred in the future, such as within the next five seconds, MD 101can begin preparing for handover. In Step 813, MD 101 may beginincreasing the size of the handover-predicting jitter buffer 222, forexample. Thus, the routine monitoring the performance of networkconnections could be coupled to the routine controlling thehandover-predicting jitter buffer. Also in Step 813, the MD 101 couldinitiate handover by transmitting a SIP Re-Invite, a similarcall-control message such as a non-media packet within MS 1, or simplybegin transmitting MS 3 to signal handover to CN 108. And otherpossibilities exist as well for indicating initiation of handover.

The software routine illustrated in FIG. 8 b could also be implementedin hardware, or operated by a remote server separate from MD 101. Thesteps outlined in FIG. 8 b could also be applied when a mobile devicehas three or more available networks, where each of the networks ismeasured and then compared, and a preferred handover may also bepredicted between the multiple different available networks.

9. FIG. 9

FIG. 9 is a graphical illustration of an exemplary system where themobile device initiates handover, and the corresponding node accessesthe public Internet through a full cone NAT router, according to anexemplary embodiment. For the system 900 illustrated in FIG. 9, thealternate network 117 is shown as the mobile operator's WAN,representing the target network for the handover. The initial network901 is the network where the first media session with CN 108 wasestablished. Alternatively, the initial network 901 could be the networkto which a previously-established call has already been handed over,such as if the user was moving through several different networks duringa call.

In order to obtain connectivity to the Internet through the alternatenetwork 117, the mobile device 101 can acquire a new IP address (IP) 301that is provided by the alternate network 117. System 100 and system 900illustrate that the alternate network (i.e. the network that is thetarget of a potential or actual handover) can be of any one of a varietyof network types, and in general is any network from which anendpoint—such as MD 101—would obtain a new IP address for communicatingover the public Internet 106.

For example, even though the mobile network operator may refer to themobile network 102 as the “home network”, for the purposes of theefficient handover techniques of the present invention, the mobilenetwork 102 may also be an alternate network 117, representing a targetnetwork to which a mobile device may prefer to transfer an existingmedia session such as a telephone call or a “peer-to-peer” voice orvideo communication. The example IP addresses shown in FIG. 9 within AN117 and the Initial Network 901 are for illustration purposes and areshown as similar to the IP addresses illustrated in FIGS. 1 through 4,although the IP addresses within AN 117 and the Initial Network 901 inSystem 900 could be different from the IP addresses illustrated in FIGS.1 through 4.

The corresponding node 108 may have a private IP address (CN IP) 902.The corresponding node 108 may be connected to the public Internet 106via a full cone NAT router 903. A software program operating at thecorresponding node CN 108 may determine the NAT type for NAT 903 throughstandard techniques such as Simple Traversal of UDP through NATs (STUN)or similar methods such as those illustrated in system 200. A port on afull cone NAT external interface, which is open and bound to an IP:porton the internal network, may generally be open to all IP addresses onthe public Internet. CN 108 is not required to confirm that NAT router903 is a full-cone NAT in order to implement the techniques illustratedherein. In addition, CN NAT 903 may perform firewall functions only andnot network address translation. In this case, CN NAT 903 could beconsidered a full cone firewall, such that any server on the publicInternet can transmit a packet to CN 108 at an IP:port where CN 108 hadrecently transmitted an outgoing packet.

A media session between MD 101 and CN 108 has previously beenestablished through protocols and a system such as the system shown inFIG. 2 b. The communication consists of a first media stream MS 1 109transmitted from MD 101 to CN 108 and a second media stream MS 2 110transmitted by CN 108 to MD 101. Although not illustrated in FIG. 9, amedia control channel such as RTCP or STRCP may optionally beimplemented, but is not required, and other quality feedback mechanismscould be utilized as well, such as inserting quality feedback messagesinto MS 1 or MS 2. The full cone NAT 903 maps packets transmitted andreceived at its external interface to the CN IP address 903 withassociated ports.

MD 101 may acquire IP 301 in part due to movement. Alternatively, bothIP 103 and IP 301 may be present and active on MD 101 when the mediasession with CN 108 was established, and MD 101 previously determinedthat IP 103 was preferred for communication for one or a combination ofmultiple reasons previously illustrated, such as superior quality, lowercosts, higher bandwidth, etc. For example, physical movement of MD 101is not necessary to leverage the advantages of implementing the presentinvention. MD 101 could be stationary and either (i) acquire a new IPaddress IP 301 as the signal from AN 117 improves, or (ii) have multipleIP addresses assigned and active, whereby MD 101 monitors the multipleIP addresses for quality and determines that a handover is preferred asthe multiple network-quality profiles change.

These two cases represent a situation where the signal strength at aparticular physical location is dynamic, such as due to periodicinterference or other sources of variation in network quality. Onepossible example is if a user is located in a residence at the initialnetwork 901 and MD 101 communicates through a local WiFi access point118 for an existing media session, and then a family member turns on amicrowave oven nearby, which could interfere heavily with 802.11 signalsat 2.4 GHz. Microwave ovens typically operate at power levels ofhundreds of watts close to 2.4 GHz. With (i) an active media sessionestablished and (ii) both IP 103 and IP 301 assigned and active on MD101, MD 101 may determine that handover from IP 103 to IP 301 ispreferred even though the mobile device is stationary in this exampleinvolving high, unexpected interference. This example also illustratesthat rapid handover techniques are preferred and that the need for ahandover may not be readily predictable by MD 101. The efficienthandover techniques outlined in the present invention can provide rapidhandover of media to minimize the impact on voice or video quality forthe user.

To initiate handover, MD 101 preferably begins transmitting a thirdmedia stream MS 3 302 from IP 301 to CN NAT 903 at IP:port 904 when MD101 determines that handover is preferred. CN NAT 903 subsequentlyreceives two media streams at IP:port 904, shown in FIG. 9 as thedestination IP address and port for both MS 1 109 and MS 3 302. CN NAT903 may then forward packets in both media streams to the same portimplemented by CN 108 for the receipt of MS 1 109, shown as IP:port 905.

Call-control messages from MD 101 to CN 108 may be transmitted as wellin order to support or further control the handover process, althoughaccording to a preferred exemplary embodiment, MS 3 302 can betransmitted by MD 101 before a handover call-control message istransmitted by MD 101, in order to speed the handover process. MD 101preferably performs a “make before break” handover, so MS 1 109 and MS 3302 are transmitted concurrently. CN 108 could observe that MS 3 302 andMS 1 109 are effectively duplicate media streams. Alternatively, MD 101may perform a “break before make” handover, and simply ceasetransmission of MS 1 109 when MS 3 302 is initiated, although sendingduplicate media streams from MD 101 may be preferred.

CN 108 should process the duplicate media streams, or the single MS 3302 if “break before make” handover is performed, without requiring anyprevious signaling, and the two streams of media received by CN 108 maynot be identical copies, as each stream may have different levels ofpacket loss, bit errors, or jitter. Preferably, CN 108 can process bothmedia streams in order to obtain a superior representation of the mediatransmitted by MD 101. For example, if CN 108 determines that aparticular packet in MS 1 likely has bit errors, but that the equivalentpacket in MS 3 is received without errors, then CN 108 may utilize thepacket in MS 3 for media playback. Conversely, if CN 108 determines asecond packet in MS 3 was lost but the equivalent packet in MS 1 wasreceived, then CN 108 may utilize the second packet from MS 1 for mediaplayback. Consequently, a receiving node may combine informationreceived in two separate media streams for reasons such as reducingerrors.

Further, MD 101 may implement different codecs for transmitting MS 1 andMS 3. MD 101, CN 108, or server or host on the Internet may havedetermined that a higher bandwith codec such as G.711 is preferred forMS 1 when MS 1 was established, due to high bandwidth availability orlower-cost bandwidth at IP 103. However, a different codec such as AMRmay be preferred for communication through the alternate network 117.For example, the alternate network 117 may have lower bandwidth, moreexpensive bandwidth, or higher bit errors, and consequently a mobilenetwork codec such as GSM-EFR or AMR may be preferred for MS 3 over thecodec implemented for MS 1.

MD 101 and CN 108 may have shared a supported codec list whenestablishing the first media session using a system similar to thatdepicted in FIG. 2 b. Consequently, MD 101 may begin transmitting MS 3formatted in a different codec to CN NAT 903 IP:port 904 upon theinitiation of handover. In this case, CN 108 preferably supports thedifferent codec for MS 3 and processes the duplicate media streams inorder to minimize potential gaps or errors in media received duringhandover. The media in FIG. 9 may be sent as RTP or SRTP, although othermethods of sequencing the media packets transmitted could also beimplemented.

10. FIG. 10

FIG. 10 is a graphical illustration of an exemplary system where themobile device and corresponding node transmit and receive media uponcompletion of handover and the corresponding node connects to theInternet through a full cone NAT router, according to an exemplaryembodiment. According to a preferred exemplary embodiment illustrated insystem 1000, when CN 108 receives MS 3 302 via the CN NAT 903, CN 108may begin transmitting a fourth media stream MS 4 401. In addition, CNNAT 903 may be a firewall and not perform network address translationfunctions. For example, if IPv6 is implemented then the need for networkaddress translation is significantly reduced due to the availability ofa large number of routable addresses. However, a user or an ISP managingthe Internet connectivity for CN 108 may desire the security benefits ofa NAT, and thus restrict incoming packets on a particular IP:port untiloutgoing packets have first been transmitted. Thus, CN NAT 903 may be afirewall instead of a NAT.

According to a second exemplary embodiment, CN 180 can begintransmitting MS 4 401 upon the receipt of a call-control signal, whichmay consist of (i) a SIP Re-Invite, (ii) a call-control message insertedinto media stream 1 109 or MS 3 302, or (iii) changes in the UDPchecksums for packets in MS 1 109, among other options.

CN 108 observes that the source IP address for MS 3 302 is IP:port 304,representing the external port on AN NAT 119 that binds to MD 101IP:port 303. CN 108 preferably transmits MS 4 401 to AN NAT 119 IP:port304 using as a source IP:port the same IP:port used to receive MS 3 302,which is IP:port 905. One benefit of transmitting MS 4 401 packets fromCN 108 from the same IP:port at which CN 108 receives MS 3 302 is thatAN NAT 119 may be symmetric or a port-restricted cone NAT.

According to a preferred exemplary embodiment, CN 108 may begintransmitting MS 4 401 without a handover call-control message orexplicit call-control signal from MD 101. CN 108 can observe theduplicate media streams MS 1 109 and MS 3 302, where media istransmitted from MD 101 with different source IP addresses. The receiptof duplicate media streams may signal to CN 108 that MD 101 isinitiating handover and has a new preferred IP address. Additionally,after MD 101 begins transmitting MS 3 302, MD 101 may then transmit acall-handover message to CN 108 via a call-control channel such as theone illustrated in FIG. 2 b. This call-handover message could be sent byMD 101 from one or both of IP 103 and IP 301.

Preferably, the transfer of media from CN 108 to MD 101 at IP 301 isimplemented via “make before break” methods, whereby MS 4 401 and MS 2110 could be transmitted concurrently for a period of time until thehandover is complete. That is, CN 108 can start transmitting mediastream 4 401 before stopping transmission of media stream 2 110. CN 108may preferably transmit MS 4 401 to the IP:port observed as theoriginating IP:port for MS 3 302, which is illustrated as IP:port 304 insystem 1000. MD 101 may monitor both IP:port 114 and IP:port 303concurrently for the receipt of media from CN 108, after the start oftransmission of MS 3 by MD 101.

In system 1000 illustrated in FIG. 10, CN 108 can transmit MS 4 401 toAN NAT 119 with the destination IP:port 304 from the source IP:port 905,which is also used by CN 108 for the receipt of packets in MS 3 302 andalso MS 1 109. This allows MS 4 401 to traverse both AN NAT 119 and CNNAT 903 without opening, determining, and communicating new portsbetween MD 101 and CN 108 in the presence of the two NATs. A process ofopening, determining, and communicating new ports may both addcomplexity to the handover process and also impair performance of thehandover. MD 101 should monitor IP:port 303 for MS 4 401, since the ANNAT 119 would generally otherwise drop packets on ports not previouslyopened by MD 101 and properly mapped by AN NAT 119. Alternativetechniques to seek a different IP:port on AN NAT 119 than IP:port 304for receipt of media destined to MD 101 at IP 301 may not be reliable,if AN NAT 119 is a symmetric NAT.

Voice activity detection (VAD) may preferably be disabled within MS 3302 and MS 4 401 in order to keep IP:port 304 or IP:port 904 open andbound. Alternatively, VAD techniques that send silence descriptorpackets more frequently than every few seconds could be implemented inorder to keep the NAT ports open and bound. MD 101 may also wish tocontinue the media control channel with the CN 108 after MS 3 and MS 4are established. The media control channel may also be useful as afeedback mechanism to each node that their transmitted media is properlyreceived, before terminating either MS 1 or MS 2.

System 1000 illustrates the transmission of the media control channel asRTCP, although other techniques such as SRTCP or proprietary protocolscould be implemented; or the media control channel could be omitted orembedded directly into the media stream, among other possibilities. MD101 may establish a new media control channel RTCP stream 4 503 bysending RTCP reports from IP:port 501 to IP:port 1001 on CN NAT 903,which then are routed to CN 108 IP:port 1002, and during this process ANNAT 119 will create a new external port binding IP:port 1003 to theinternal IP:port 501 assigned to MD 101. IP:port 1001 may be the sameport on CN NAT 903 implemented to receive RTCP packets before handover,such as with the media control packets for MS 2 110.

Upon receipt of packets in RTCP stream 4 503 at CN 108 IP:port 1002, thecorresponding node can observe the originating IP:port 1003 within theIP headers of the RTCP packet. Consequently, CN 108 may now begintransmitting RTCP reports regarding MS 3 302 to IP:port 1003 on AN NAT119, thereby creating RTCP stream 3 504. AN NAT 119 forwards packets inRTCP stream 3 504 to IP:port 501 on MD 101 at IP 301. Thus, in order toeffectively support a media control channel through AN NAT 119 and CNNAT 903, both CN 108 and MD 101 may implement the same IP:ports on theirprivate IP addresses for sending and receiving media control packets, asshown by IP:port 501 and IP:port 1002.

11. FIG. 11

FIG. 11 is simplified tabular summary illustrating the source anddestination IP addresses for media and media control packets transmittedand received during handover process according to an exemplaryembodiment. The use of NATs at both nodes, such as alternate network NAT119 and corresponding node NAT 903, increase the complexity of managingcommunications between MD 101 and CN 108. Each call control, media, ormedia control channel packet transmitted and received should have asource IP address and a destination IP address, as well as a source portnumber and a destination port number. Various example IP addresses andports for the present invention are illustrated throughout FIGS. 1-9.The tabular summary in FIG. 11 illustrates example headers on packetswithin both the media and media control streams according to anexemplary embodiment illustrated in FIGS. 9 and 10.

The headers on a packet may be different as a packet routes (i) betweenMD 101 and AN NAT 119, (ii) between the external interfaces of the ANNAT 119 and CN NAT 903, and (iii) between CN NAT 903 and CN 108. Inaddition, multiple levels of NATs may connect either MD 101 or CN 108 tothe Internet, and a single NAT is shown for each node in FIG. 11. Ifmultiple NATs are deployed between a node and the public Internet 106,in general their combined function may be to act as a single logical NATfor most applications such as voice and media.

The packet headers for both media and a media control channel for allfour media streams and media control channels in system 900 and system1000 are illustrated in FIG. 11. An RTCP media control channel isillustrated in FIG. 11, although other media control packets could beinserted directly into the media streams, if the protocol implemented bythe nodes support this type of logical channel. In addition, the mediacontrol channel could be omitted or partially omitted, such that RTCP orrelated techniques are implemented before handover, and then RTCP or therelated techniques are not implemented after handover, therebysimplifying the handover process.

12. FIG. 12

FIG. 12 is a graphical illustration of an exemplary system where themobile device performs handover between two heterogeneous mobilenetworks, according to an exemplary embodiment. In addition to handoverof active media sessions between a LAN and a WAN, as illustrated bysystems 100, 200, 300, and 400 in FIGS. 1 through 4, the mobile devicecould also perform handover between two independent WANs utilizing thetechniques of the present invention. The type of handover may beparticularly beneficial to allow roaming between two separate serviceproviders in a manner that allows active media sessions to remain bothopen and seamlessly transitioned for a user.

Handover for active mobile voice calls between roaming networks may notbe supported on legacy networks such as GSM 2G, although idle handovermay be supported. This lack of handover for active calls upon movementto a roaming network would likely result in dropped calls for a user. Ifthe mobile networks provide connectivity to the Internet and IPaddresses to a mobile device, the mobile device can perform handover ina manner that will keep the call active for the user by utilizing thetechniques described herein.

According to system 1200 illustrated in FIG. 12, two separate mobilenetwork operators, mobile network A 1201 and mobile network B 1202, eachprovide connectivity to the Internet to mobile devices. A user mayreceive service from mobile network A 1201, and MD 101 has established amedia session with CN 108, consisting of MS 1 109 and MS 2 110. Mediafrom MD 101 is transmitted using IP:port 113, representing the source IPaddress and port for packets transmitted by MD 101 at IP 103.

The mobile network A NAT 105 (MN A NAT 105) converts the source IPaddress and port for media packets transmitted by MD 101 to IP:port 115,representing the source IP address and port for media packetstransmitted by MN A NAT 105. This conversion of IP:port 113 to IP:port115 may take place with or without an application layer gateway (ALG)functionality within mobile network A NAT 105. If the media sessionbetween MD 101 and CN 108 is established using a protocol not understoodby the ALG, or possibly through messages that are encrypted between MD101 and CN 108, the ALG in MN A NAT 105 should not normally attempt tomodify port numbers within the body of packets transmitted, and thus MNA NAT 105 would function as a regular NAT without ALG functionality. Oneexample may be if MD 101 communicates with CN 108 according to the IAX2protocol or the Jingle specification implemented by GoogleTalk®, whileMN A NAT 105 operates as a SIP application layer gateway and NAT.

CN 108 may connect to the Internet via a full cone NAT router 903 asillustrated in FIG. 12, or alternatively CN 108 may have apublicly-routable IP address. Although IPv4 addresses are illustrated bysystem 1200 in FIG. 12, IPv6 addresses could be used. In addition, IPv6addresses could be used in some elements in FIG. 12, such as through thepublic Internet 106 and on the mobile networks A and B, while otherelements use IPv4, such as on the CN 108. In this case, the CN NATrouter 903 may also translate between IPv4 and IPv6 packets.

The MD 101 may approach a second mobile network B due to user movement.Some possibilities for MD 101 being able to communicate via the secondmobile network B include (i) the user having an account with mobilenetwork B, (ii) mobile network A may have a roaming agreement withmobile network B, and (iii) mobile network B providing WAN wireless IPservices for free in order to sell advertising to users, among otherpossibilities. Further, mobile network A and mobile network B mayoperate different underlying mobile networking technologies, such asmobile WiMax for mobile network A (802.16e, 802.20, or subsequent orrelated standards) and 3GPP LTE for mobile network B. Alternatively,mobile network B could be a municipal WiFi network, for example.

The media sessions illustrated by system 1200 in FIG. 12 can be managedby MD 101, and handover can occur between the different networktechnologies, if MD 101 has (i) the appropriate hardware interfaces toproperly communicate with each network, such as the appropriate physicalinterfaces 201 and device drivers 202, and (ii) the user is authorizedto access each network. As MD 101 acquires a sufficiently highsignal-to-noise ratio from a base station 104 within mobile network B1202, MD 101 can connect and authenticate with mobile network B andacquire IP 301, while continuing to communicate with CN 108 via IP 103.MD 101 may have gathered information that CN 108 is behind a full coneNAT when establishing the first media session consisting of MS 1 109 andMS 2 110.

Upon acquiring IP 301, MD 101 begins transmitting a third media stream 3302 to IP:port 904 on CN NAT 903. This third media stream may representa copy of MS 1 109, similar to “make before break” methodologies formobile handover. Since CN NAT 903 may be a full cone NAT or firewallwith packet filtering rules equivalent to a full cone NAT but withoutnetwork address translation, packets from both MS 1 and MS 3 areforwarded to CN 108 IP:port 905. CN 108 preferably accepts both mediastreams and may combine the duplicate media in order to compensate forerrors in any one individual stream.

CN 108, upon starting to receive MS 3 302, begins transmitting MS 4 401back to MD 101 at IP 301. The destination IP:port for MS 4 401 ispreferably IP:port 1203, which is observed by CN 108 as the sourceIP:port for MS 3 302. MD 101 can consequently both transmit and receivemedia with CN 108 on IP:port 303 at IP 301. Likewise, CN 108 can bothtransmit and receive media on IP:port 905.

Upon establishment of MS 3 and MS 4, a new media control channel canalso be established, according to the techniques described in FIG. 5.The media control channel is optional, but establishment and use of themedia control channel may be preferred since feedback on media qualityreceived at each node may be helpful for determining that the handoveris complete and successful. MD 101 can cease the transmission of MS 1and also the associated media control channel RTCP stream, if present,upon the completion of handover. CN 108 can cease the transmission of MS2 and also the associated media control channel RTCP stream, if present,upon the completion of handover. MD 101 at IP 301 can then continue tomonitor for other available networks and potential preferred IPaddresses for communication, and perform subsequent efficient handoversaccording to the systems and methods described herein.

13. FIG. 13

FIG. 13 is a flow chart illustrating exemplary steps for a mobile deviceto perform handover between heterogeneous data networks. In Step 1301,MD 101 can establish a media session such as a voice call with acorresponding node 108. In Step 1302, MD 101 can transmit a first mediastream 109 to the corresponding node 108 and receive a second mediastream 110 from the corresponding node. In Step 1303, MD 101 can acquirea second IP address, IP 301, and can measure the quality of the networkconnections. In addition, MD 101 may measure the quality of the networkconnections before IP 301 is assigned to MD 101, such as propertiesrelated to the physical or data-link layer, including signal-to-noiseratio or bit errors. Measurements of IP network-level quality at IP 301,such as packet loss and jitter may require the assignment of IP 301 toMD 101. In Step 1304, MD 101 can determine that a handover is preferredaccording to one or more of the methods described herein, as examples.

In Step 1305, MD can begin the handover process by transmitting a thirdmedia stream 302 from IP 301 at IP:port 303 to a corresponding node. Thecorresponding node at step 1305 could also be a relay, as illustrated inFIG. 2 b, which then forwards packets to the corresponding node 108 atIP:port 122. This is an example of where a corresponding node may alsobe a relay to a second corresponding node. If the corresponding node isnot a relay, MD 101 could transmit MS 302 directly to CN 108 at IP:port122 in Step 1305. In Step 1306, MD 101 can transmit a call-controlmessage such as a SIP Re-Invite to CN 108, and other protocols orcall-control messages could be used as well. Steps 1305 and 1306 couldbe interchanged. In Step 1307, MD 101 may receive a fourth MS 401 at theIP address and port implemented to originate the third media stream,which is illustrated as IP:port 303 in FIG. 4.

14. FIG. 14

FIG. 14 is a graphical illustration of an exemplary system where thecorresponding node performs as a relay to a terminating node, accordingto an exemplary embodiment. One principle of media communications acrossthe Internet is that the transmission of media directly betweenendpoints is generally preferred. Direct communication can both reducedelay and also avoid the cost of routing packets through an intermediateserver, such as a Back-to-Back User Agent (B2BUA) in the SIP protocol, ahome agent (HA) within the Mobile IP specification (IETF RFC 3344 andrelated standards), or a relay for the traversal of communicationbetween endpoints behind NATs. In addition, direct communication betweennodes may improve quality by reducing the probability of lost packets bydecreasing the total number of router hops a packet may traverse betweenendpoints.

However, in some cases the direct routing of packets between endpointsmay not be available, such as if both nodes connect to the publicInternet 106 via symmetric NATs. If packets between a mobile device anda terminating node are routed through an intermediate server, the servermay also function as a corresponding node for the mobile device. In thisexample case of the corresponding node bridging the communicationbetween a mobile device and a terminating node, the encoding anddecoding of media may not take place on the corresponding node, in orderto reduce processing load on the corresponding node as well as preservemedia quality, since multiple encodings and decodings of media candegrade quality. An intermediate server functioning as a correspondingnode could also implement the techniques described in the presentinvention in order to both expedite and simplify the handover process.

In system 1400, CN 108 operates as an intermediate server between MD 101and a terminating node (TN) 1401. CN 108 could be a device thatcommunicates with both MD 101 and TN 1401, such as a Mobile IP HomeAgent, SIP B2BUA, or a relay, among other possibilities. TN 1401 can beanother mobile device, a personal computer operating a software program,or similar endpoint for the receipt and transmission of media across theInternet, among other possibilities. TN 1401 may have a private IPaddress and connect to the Internet via a NAT router 1402. NAT router1402 can be different than NAT router 903, since NAT router 1402 may beof any standard type, including port-restricted cone, symmetric, or fullcone. NAT router 903 may be restricted to the full cone type.

MD 101 can establish a media session with CN 108 by transmitting MS 1and receiving MS 2. Communication between MD 101 and TN 1401 is obtainedby CN 108 re-routing MS 1 to TN 1401 and also re-routing media from TN1401 to MS 2. MD 101 could have previously handed over MS 1 and MS 2 toCN 108 in preparation for a second handover to IP 301. When MD 101determines that communication with CN 108 is preferred via IP 301, MD101 can initiate a handover. The handover can begin by MD 101transmitting MS 3 to the same IP address and port implemented at thecorresponding node for the receipt of MS 1, illustrated as IP:port 122.MS 3 and MS 1 may preferably represent essentially duplicate copies ofthe media, according to a “make before break” handover. The copies ofthe media do not have to be identical.

Upon receipt of duplicate media at IP:port 122, CN 108 may begintransmission of MS 4 without previously requiring a call-control messageto be processed. A signal that MD 101 is performing handover can becommunicated to CN 108 by (i) the receipt of MS 3 at IP:port 122, (ii) acall message via a call-control channel, (iii) a packet inserted withinMS 1, or (iv) a change in the UDP checksums for packets within MS 1,among other options. Media packets do not have to be transmitted by UDP,and other transport protocols could be implemented as well, such as TCP.

CN 108 can transmit both MS 2 and MS 4 concurrently, also representing a“make before break” handover. MD 101 can monitor both IP 103 and IP 301for the receipt of MS 2 and MS 4, respectively. A separate call-controlmessage confirming handover can be processed by CN 108 after thetransmission of MS 4 begins. The call-control message may need totraverse a call-control channel via a series of proxy servers asillustrated in FIG. 2 b. By transmitting MS 4 before a call-controlmessage is separately received at CN 108, the time required to implementhandover of media can be reduced.

In FIG. 14, CN 108 may not need to make any changes in the communicationwith TN 1401 as MD 101 performs the handover. The duplicate mediastreams MS 1 and MS 3 can be filtered into a single media stream. Inaddition, CN 108 performs the action of bi-casting a single media streamreceived from TN 1401 to the two addresses IP 103 and IP 301.Consequently, TN 1401 need not be aware of the handover by MD 101.

CONCLUSION

Various exemplary embodiments have been described above. Those skilledin the art will understand, however, that changes and modifications maybe made to those examples without departing from the scope of theclaims.

What is claimed is:
 1. A method comprising: using a first InternetProtocol address and port (IP:port) number to receive at a device from asecond IP:port number a first media control channel stream includingquality information indicative of a quality of transmission of a firstmedia stream being sent by the device through a network; sending, by thedevice, from the first IP:port number to the second IP:port number asecond media control channel stream including quality informationindicative of a quality of transmission of a second media stream beingreceived at the device through the network; based on a network handoverrequest, sending from a third IP:port number to the second IP:portnumber a third media control channel stream including qualityinformation indicative of a quality of transmission of a third mediastream being received at the device through an alternate network; andusing the third IP:port number to receive from the second IP:port numbera fourth media control channel stream including quality informationindicative of a quality of transmission of a fourth media stream beingsent by the device through the alternate network.
 2. The method of claim1, wherein using the third IP:port number to receive the fourth mediacontrol channel stream comprises: using the third IP:port number toreceive the fourth media control channel stream before sending the thirdmedia control channel stream.
 3. The method of claim 1, wherein sendingthe third media control channel stream comprises: sending the thirdmedia control channel stream before the first second media controlchannel stream ends.
 4. The method of claim 1, wherein the third mediastream includes at least a portion of the second media stream, andwherein the fourth media stream includes at least a portion of the firstmedia stream.
 5. The method of claim 1, further comprising: terminating,based on the fourth media control channel stream indicating that thequality of transmission of the fourth media stream meets a mediatransmission quality threshold, transmission of the first media stream.6. The method of claim 1, further comprising: making an adjustment,based on the fourth media control channel stream, to the fourth mediastream, wherein making the adjustment comprises at least one of:implementing a forward-error-correction (FEC) to the fourth mediastream, and modifying a codec associated with transmission of the fourthmedia stream.
 7. The method of claim 1, further comprising: determining,based on the fourth media control channel stream indicating that thequality of transmission of the fourth media stream meets a mediatransmission quality threshold, that network handover from the networkto the alternate network is complete; and terminating, in response todetermining that the network handover is complete, transmission of thefirst media stream and receipt of the second media stream.
 8. The methodof claim 1, wherein receiving the first media control channel stream andthe fourth media control channel stream, and sending the second mediacontrol channel stream and the third media control channel streamcomprises: receiving and sending respective media control channelstreams using a Real-Time Control Protocol (RTCP) or a Secured Real-TimeControl Protocol (SRTCP).
 9. The method of claim 1, wherein the qualityinformation indicative of the quality of transmission of a respectivemedia stream comprises at least one of round-trip delay, packet loss,bit error, and jitter for the respective media stream.
 10. The method ofclaim 1, further comprising: initiating, based on the first mediacontrol channel stream indicating a degrading of communication throughthe network, the network handover request.
 11. The method of claim 1,wherein sending the second media control channel stream comprisessending a periodic message transmitted within the first media stream,and wherein sending the third media control channel stream comprisessending a respective periodic message transmitted within the fourthmedia stream.
 12. The method of claim 1, further comprising: assigning,before sending the third media control channel stream, the third IP:portnumber for receipt of the fourth media control channel stream.
 13. Anon-transitory computer readable storage medium having stored thereininstructions, that when executed by a computing device, cause thecomputing device to perform functions comprising: using a first InternetProtocol address and port (IP:port) number to receive from a secondIP:port number a first media control channel stream including qualityinformation indicative of a quality of transmission of a first mediastream being sent by the computing device through a network; sendingfrom the first IP:port number to the second IP:port number a secondmedia control channel stream including quality information indicative ofa quality of transmission of a second media stream being received at thecomputing device through the network; based on a network handoverrequest, sending from a third IP:port number to the second IP:portnumber a third media control channel stream including qualityinformation indicative of a quality of transmission of a third mediastream being received at the computing device through an alternatenetwork, wherein the third media stream includes at least a portion ofthe second media stream; and using the third IP:port number to receivefrom the second IP:port number a fourth media control channel streamincluding quality information indicative of a quality of transmission ofa fourth media stream being sent by the computing device through thealternate network, wherein the fourth media stream includes at least aportion of the first media stream.
 14. The non-transitory computerreadable storage medium of claim 13, wherein the functions furthercomprise: providing a port-binding packet, before sending the thirdmedia control channel stream, to assign the third IP:port number forreceipt of the fourth media control channel stream.
 15. Thenon-transitory computer readable storage medium of claim 13, wherein thefunctions further comprise: determining, based on the fourth mediacontrol channel stream indicating that the quality of transmission ofthe fourth media stream meets a media transmission quality threshold,that network handover from the network to the alternate network iscomplete; providing a call-control message to terminate transmission ofthe second media stream; and terminating transmission of the first mediastream.
 16. The non-transitory computer readable storage medium of claim13, wherein the functions further comprise: making an adjustment, basedon the fourth media control channel stream, to the fourth media stream.17. A device comprising: at least one processor; and data storagecomprising instructions that, when executed by the at least oneprocessor, cause the device to perform functions comprising: using afirst Internet Protocol address and port (IP:port) number to receivefrom a second IP:port number a first media control channel streamincluding quality information indicative of a quality of transmission ofa first media stream being sent by the device through a network; sendingfrom the first IP:port number, to the second IP:port number a secondmedia control channel stream including quality information indicative ofa quality of transmission of a second media stream being received at thedevice through the network; based on a network handover request, sendingfrom a third IP:port number to the second IP:port number a third mediacontrol channel stream including quality information indicative of aquality of transmission of a third media stream being received at thedevice through an alternate network; and using the third IP:port numberto receive from the second IP:port number a fourth media control channelstream including quality information indicative of a quality oftransmission of a fourth media stream being sent by the device throughthe alternate network.
 18. The device of claim 17, wherein the thirdmedia stream includes at least a portion of the second media stream, andwherein the fourth media stream includes at least a portion of the firstmedia stream.
 19. The device of claim 17, wherein the function of usingthe third IP:port number to receive the fourth media control channelstream comprises using the third IP:port number to receive the fourthmedia control channel stream before sending the third media controlchannel stream, and wherein the function of sending the third mediacontrol channel stream comprises sending the third media control channelstream before the first second media control channel stream ends. 20.The device of claim 17, wherein the functions further comprise:terminating, based on the fourth media control channel stream,transmission of the first media stream and receipt of the second mediastream.